workflows: version: 2 build-circleci: jobs: - build - test: requires: - build - back-deploy-heroku: requires: - build - docker-build-and-push: requires: - back-deploy-heroku version: 2 jobs: build: docker: working_directory: ~/repo steps: - checkout - restore_cache: keys: - v3-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} - v3-dependencies- - run: name: install dependencies command: | python3 -m venv venv . venv/bin/activate pip install -r requirements/dev.txt environment: CONDUIT_SECRET: 'something-really-secret' FLASK_APP: /home/circleci/repo/autoapp.py FLASK_DEBUG: 1 - save_cache: paths: - venv key: v3-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} test: docker: - image: postgres:9.6.2-alpine environment: POSTGRES_USER: myuser POSTGRES_PASSOWRD: somePwd POSTGRES_DB: mydb working_directory: ~/repo steps: - checkout - restore_cache: keys: - v3-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} - v3-dependencies- - run: name: bd upgrade command: | . venv/bin/activate sleep 1 flask db upgrade environment: CONDUIT_SECRET: 'something-really-secret' FLASK_APP: /home/circleci/repo/autoapp.py DATABASE_URL: postgresql://myuser:somePwd@localhost:5432/mydb FLASK_DEBUG: 1 POSTGRES_USER: myuser POSTGRES_DB: mydb POSTGRES_PASSWORD: somePwd POSTGRES_PORT: 5432 - run: name: run tests command: | . venv/bin/activate flask db migrate flask test environment: CONDUIT_SECRET: 'something-really-secret' FLASK_APP: /home/circleci/repo/autoapp.py DATABASE_URL: postgresql://myuser:somePwd@localhost:5432/mydb FLASK_DEBUG: 1 POSTGRES_USER: myuser POSTGRES_DB: mydb POSTGRES_PASSWORD: somePwd POSTGRES_PORT: 5432 - save_cache: paths: - venv key: v3-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }}