workflows: version: 2 build-and-deploy: jobs: - build - back-deploy-heroku: requires: - build jobs: # A basic unit of work in a run build: # runs not using Workflows must have a `build` job as entry point docker: # run the steps with Docker # CircleCI Python images available at: https://hub.docker.com/r/circleci/python/ - image: circleci/python:3.7 auth: username: mydockerhub-user password: $DOCKERHUB_PASSWORD # 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 # CircleCI PostgreSQL images available at: https://hub.docker.com/r/circleci/postgres/ - image: circleci/postgres:9.6.2 auth: username: $DOCKERHUB_USERNAME password: $DOCKERHUB_PASSWORD # context / project UI env-var reference environment: # environment variables for the Postgres container. POSTGRES_USER: root POSTGRES_DB: circle_test 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.7/site-packages - restore_cache: # Read about caching dependencies: https://circleci.com/docs/2.0/caching/ key: deps9-{{ .Branch }}-{{ checksum "Pipfile.lock" }} - run: command: | export CONDUIT_SECRET='something-really-secret' export FLASK_APP=/path/to/autoapp.py export FLASK_DEBUG=1 - run: command: | sudo pip install pipenv --upgrade pipenv install pipenv lock pip install -r requirements/dev.txt --user - save_cache: # cache Python dependencies using checksum of Pipfile as the cache-key key: deps9-{{ .Branch }}-{{ checksum "Pipfile.lock" }} paths: - "venv" # - run: # command: | # pipenv run python manage.py test - store_test_results: # Upload test results for display in Test Summary: https://circleci.com/docs/2.0/collect-test-data/ path: test-results - store_artifacts: # Upload test summary for display in Artifacts: https://circleci.com/docs/2.0/artifacts/ path: test-results destination: tr1 back-deploy-heroku: docker: - image: buildpack-deps:trusty steps: - checkout - run: name: Heroku Deploy command: echo $HEROKU_APP_NAME git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git main - run: name: Smoke Test command: | HTTPCODE=`curl -s -o /dev/null -w "%{http_code}" https://$HEROKU_APP_NAME.herokuapp.com/` if [ "$HTTPCODE" -ne 200 ];then echo "heroku app not responding, failing deploy" exit 1 fi