diff --git a/.circleci/config.yml b/.circleci/config.yml index da95a22..a66e4bb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,60 +1,116 @@ +# Python CircleCI 2.0 configuration file +# +# Check https://circleci.com/docs/2.0/language-python/ for more details +# +version: 2 jobs: - install: + build: docker: - - image: circleci/python:3.6.10 - - image: circleci/postgres:9.6.2 + # specify the version you desire here + # use `-browsers` prefix for selenium tests, e.g. `3.6.1-browsers` + - image: circleci/python:3.6.4 + + # 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 + working_directory: ~/repo + steps: - checkout + + # Download and cache dependencies - restore_cache: keys: - - dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} - - dependencies- + - v1-dependencies-{{ checksum "requirements/dev.txt" }} + - v1-dependencies- + # fallback to using the latest cache if no exact match is found + - run: - name: install python and dependencies + name: install dependencies command: | python3 -m venv venv . venv/bin/activate pip install -r requirements/dev.txt - - - run: - name: db upgrade environment: + CONDUIT_SECRET: 'something-really-secret' FLASK_APP: /home/circleci/repo/autoapp.py FLASK_DEBUG: 1 - POSTGRES_USER: postgres - POSTGRES_DB: bdtest - POSTGRES_PASSWORD: somePwd - POSTGRES_PORT: 5432 - DATABASE_URL: postgresql://postgres:somePwd@localhost:5432/postgres + + - save_cache: + paths: + - venv + key: v1-dependencies-{{ checksum "requirements/dev.txt" }} + + + + test: + 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 + # 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: + POSTGRES_USER: myUsr + POSTGRES_PASSOWRD: somePwd + POSTGRES_DB: myUsr + + working_directory: ~/repo + + steps: + - checkout + + # Download and cache dependencies + - restore_cache: + keys: + - v1-dependencies-{{ checksum "requirements/dev.txt" }} + - v1-dependencies- + # fallback to using the latest cache if no exact match is found + + - run: + name: bd upgrade command: | - echo $FLASK_APP - echo $FLASK_DEBUG - echo $DATABASE_URL . venv/bin/activate + sleep 1 flask db upgrade - - run: - name: flask test environment: + CONDUIT_SECRET: 'something-really-secret' FLASK_APP: /home/circleci/repo/autoapp.py + DATABASE_URL: postgresql://myUsr:somePwd@localhost:5432/myUsr FLASK_DEBUG: 1 - POSTGRES_USER: postgres - POSTGRES_DB: bdtest - POSTGRES_PASSWORD: somePwd - POSTGRES_PORT: 5432 - DATABASE_URL: postgresql://postgres:somePwd@localhost:5432/postgres - TESTENV: "pour tester les var env" + + + + + # 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: | - echo $DATABASE_URL - echo $TESTENV . 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 + - save_cache: paths: - - ./venv - key: dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} + - venv + key: v1-dependencies-{{ checksum "requirements/dev.txt" }} workflows: version: 2 build-back: jobs: - - install \ No newline at end of file + - build + - test: + requires: + - build \ No newline at end of file