diff --git a/.circleci/config.yml b/.circleci/config.yml index fdc29f3..d4e9a98 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -17,9 +17,59 @@ jobs: key: deps-{{ checksum "requirements/dev.txt"}}-{{ .Environment.CACHE_VERSION }} paths: - "venv" + test: + docker: + - image: circleci/python:3.9 + environment: + DATABASE_URL: postgresql://myUsr:somePwd@localhost:5432/psdb + FLASK_APP: autoapp.py + CONDUIT_SECRET: 'something-really-secret' + FLASK_DEBUG: 1 + - image: circleci/postgres:9.6.2-alpine + environment: + POSTGRES_USER: myUsr + POSTGRES_DB: psdb + POSTGRES_PASSWORD: somePwd + steps: + - checkout + - restore_cache: + key: deps-{{ checksum "requirements/dev.txt"}}-{{ .Environment.CACHE_VERSION }} + - run: + name: Waiting for postgresql + command : dockerize -wait tcp://localhost:5432 -timeout 1m + - run: + name: Launching tests + command: | + . venv/bin/activate + python -m flask db upgrade + python -m flask test + deploy-heroku: + docker: + - image : buildpack-deps:trusty + steps: + - checkout + - run: + name: Deployer vers 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: + build_test_deploy: jobs: - - build \ No newline at end of file + - build + - test: + requires: + - build + - deploy-heroku: + context: Heroku + requires: + - build \ No newline at end of file