version: 2 jobs: build: docker: - image: circleci/python:3.9-buster-node-browsers steps: - checkout - restore_cache: key: deps-{{ checksum "requirements/dev.txt"}}-{{ .Environment.CACHE_VERSION }} - run: name: Installation des dépendances python command: | python3 -m venv venv . venv/bin/activate pip install -r requirements/dev.txt - save_cache: key: deps-{{ checksum "requirements/dev.txt"}}-{{ .Environment.CACHE_VERSION }} paths: - "venv" flask_tests: docker: - image: circleci/python:3.9-buster-node-browsers environment: DATABASE_URL: postgresql://gianni:gianni@localhost:5432/postgres CONDUIT_SECRET: 'something-really-secret' FLASK_APP: autoapp.py FLASK_DEBUG: 1 - image: circleci/postgres:9.6.9-alpine environment: POSTGRES_USER: gianni POSTGRES_PASSWORD: gianni POSTGRES_BD: postgres steps: - checkout - restore_cache: key: deps-{{ checksum "requirements/dev.txt"}}-{{ .Environment.CACHE_VERSION }} - run: name: Attente de postgres command: dockerize -wait tcp://localhost:5432 -timeout 1m - run: name: Tests Flask command: | . venv/bin/activate flask db stamp head flask db migrate flask db upgrade flask test deploy-heroku: docker: - image: buildpack-deps:trusty steps: - checkout - run: name: Déploiement heroku command: | git config --global push.default matching 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/api/articles` if [ "$HTTPCODE" -ne 200 ];then echo "heroku app not responding, failing deploy" exit 1 fi workflows: version: 2 tp: jobs: - build - flask_tests: requires: - build