diff --git a/.circleci/config.yml b/.circleci/config.yml index 51d721e..7e40577 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5,110 +5,42 @@ version: 2 jobs: build: - docker: - # specify the version you desire here - # use `-browsers` prefix for selenium tests, e.g. `3.6.1-browsers` - - image: circleci/python:3.6.4 + working_directory: ~/circleci-demo-python-django + docker: # run the steps with Docker + # CircleCI Python images available at: https://hub.docker.com/r/circleci/python/ + - image: circleci/python:3.8.5 + auth: + username: $DOCKER_HUB_USER_ID + password: $DOCKER_HUB_PWD # context / project UI env-var reference environment: # environment variables for primary container PIPENV_VENV_IN_PROJECT: true DATABASE_URL: postgresql://root@localhost/circle_test?sslmode=disable - - # Specify service dependencies here if necessary - # CircleCI maintains a library of pre-built images - # documented at https://circleci.com/docs/2.0/circleci-images/ - # - image: circleci/postgres:9.4 - - image: circleci/python:3.6.4 + # CircleCI PostgreSQL images available at: https://hub.docker.com/r/circleci/postgres/ + - image: circleci/postgres:9.6.9-alpine + auth: + username: $DOCKER_HUB_USER_ID + password: $DOCKER_HUB_PWD # context / project UI env-var reference environment: # environment variables for the Postgres container. POSTGRES_USER: root POSTGRES_DB: circle_test - working_directory: ~/repo - - steps: - - checkout - # Download and cache dependencies - - restore_cache: - keys: - - v6-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} - - v6-dependencies- - # fallback to using the latest cache if no exact match is found - - - run: - name: install dependencies - command: | - export FLASK_APP=autoapp.py - pip install -r requirements/dev.txt - flask db upgrade - flask test - - save_cache: - paths: - - venv - key: v6-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} - - - - test: - docker: - # specify the version you desire here - # use `-browsers` prefix for selenium tests, e.g. `3.6.1-browsers` - - # Specify service dependencies here if necessary - # CircleCI maintains a library of pre-built images - # documented at https://circleci.com/docs/2.0/circleci-images/ - - image: postgres:9.6.2-alpine - environment: - PIPENV_VENV_IN_PROJECT: true - DATABASE_URL: postgresql://root@localhost/circle_test?sslmode=disable - POSTGRES_USER: myUsr - POSTGRES_PASSOWRD: somePwd - POSTGRES_DB: myUsr - - working_directory: ~/repo - - steps: - - checkout + steps: # steps that comprise the `build` job + - checkout # check out source code to working directory - run: sudo chown -R circleci:circleci /usr/local/bin - run: sudo chown -R circleci:circleci /usr/local/lib/python3.8/site-packages - - # Download and cache dependencies - restore_cache: keys: - - v6-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} - - v6-dependencies- - # fallback to using the latest cache if no exact match is found - + - v7-dependencies-{{ checksum "requirements/dev.txt" }} + - v7-dependencies- - run: - name: bd upgrade command: | export FLASK_APP=autoapp.py - . venv/bin/activate - sleep 1 + pip install -r requirements/dev.txt --user flask db upgrade - environment: - CONDUIT_SECRET: 'something-really-secret' - FLASK_APP: /home/circleci/repo/autoapp.py - DATABASE_URL: postgresql://myUsr:somePwd@localhost:5432/myUsr?sslmode=disable - FLASK_DEBUG: 1 - # run tests! - # this example uses Django's built-in test-runner - # other common Python testing frameworks include pytest and nose - # https://pytest.org - # https://nose.readthedocs.io - - run: - name: run tests - command: | - . venv/bin/activate flask test - environment: - CONDUIT_SECRET: 'something-really-secret' - FLASK_APP: /home/circleci/repo/autoapp.py - FLASK_DEBUG: 1 - DATABASE_URL: postgresql://myUsr:somePwd@localhost:5432/myUsr?sslmode=disable - - save_cache: paths: - venv - key: v6-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} - + key: v7-dependencies-{{ checksum "requirements/dev.txt" }} back-deploy-heroku: docker: - image: buildpack-deps:trusty