Browse Source

💚 change order and tests implementations

main
Julien Dudek 6 years ago
parent
commit
4b2c40e1ff
  1. 116
      .circleci/config.yml

116
.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: jobs:
install:
build:
docker: 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 working_directory: ~/repo
steps: steps:
- checkout - checkout
# Download and cache dependencies
- restore_cache: - restore_cache:
keys: 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: - run:
name: install python and dependencies
name: install dependencies
command: | command: |
python3 -m venv venv python3 -m venv venv
. venv/bin/activate . venv/bin/activate
pip install -r requirements/dev.txt pip install -r requirements/dev.txt
- run:
name: db upgrade
environment: environment:
CONDUIT_SECRET: 'something-really-secret'
FLASK_APP: /home/circleci/repo/autoapp.py FLASK_APP: /home/circleci/repo/autoapp.py
FLASK_DEBUG: 1 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: | command: |
echo $FLASK_APP
echo $FLASK_DEBUG
echo $DATABASE_URL
. venv/bin/activate . venv/bin/activate
sleep 1
flask db upgrade flask db upgrade
- run:
name: flask test
environment: environment:
CONDUIT_SECRET: 'something-really-secret'
FLASK_APP: /home/circleci/repo/autoapp.py FLASK_APP: /home/circleci/repo/autoapp.py
DATABASE_URL: postgresql://myUsr:somePwd@localhost:5432/myUsr
FLASK_DEBUG: 1 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: | command: |
echo $DATABASE_URL
echo $TESTENV
. venv/bin/activate . venv/bin/activate
flask test 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: - save_cache:
paths: paths:
- ./venv
key: dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }}
- venv
key: v1-dependencies-{{ checksum "requirements/dev.txt" }}
workflows: workflows:
version: 2 version: 2
build-back: build-back:
jobs: jobs:
- install
- build
- test:
requires:
- build
Loading…
Cancel
Save