|
|
@ -5,110 +5,42 @@ |
|
|
version: 2 |
|
|
version: 2 |
|
|
jobs: |
|
|
jobs: |
|
|
build: |
|
|
build: |
|
|
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 |
|
|
|
|
|
|
|
|
working_directory: ~/circleci-demo-python-django |
|
|
|
|
|
docker: # run the steps with Docker |
|
|
|
|
|
# CircleCI Python images available at: https://hub.docker.com/r/circleci/python/ |
|
|
|
|
|
- image: circleci/python:3.8.5 |
|
|
|
|
|
auth: |
|
|
|
|
|
username: $DOCKER_HUB_USER_ID |
|
|
|
|
|
password: $DOCKER_HUB_PWD # context / project UI env-var reference |
|
|
environment: # environment variables for primary container |
|
|
environment: # environment variables for primary container |
|
|
PIPENV_VENV_IN_PROJECT: true |
|
|
PIPENV_VENV_IN_PROJECT: true |
|
|
DATABASE_URL: postgresql://root@localhost/circle_test?sslmode=disable |
|
|
DATABASE_URL: postgresql://root@localhost/circle_test?sslmode=disable |
|
|
|
|
|
|
|
|
# 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 |
|
|
|
|
|
- image: circleci/python:3.6.4 |
|
|
|
|
|
|
|
|
# CircleCI PostgreSQL images available at: https://hub.docker.com/r/circleci/postgres/ |
|
|
|
|
|
- image: circleci/postgres:9.6.9-alpine |
|
|
|
|
|
auth: |
|
|
|
|
|
username: $DOCKER_HUB_USER_ID |
|
|
|
|
|
password: $DOCKER_HUB_PWD # context / project UI env-var reference |
|
|
environment: # environment variables for the Postgres container. |
|
|
environment: # environment variables for the Postgres container. |
|
|
POSTGRES_USER: root |
|
|
POSTGRES_USER: root |
|
|
POSTGRES_DB: circle_test |
|
|
POSTGRES_DB: circle_test |
|
|
working_directory: ~/repo |
|
|
|
|
|
|
|
|
|
|
|
steps: |
|
|
|
|
|
- checkout |
|
|
|
|
|
# Download and cache dependencies |
|
|
|
|
|
- restore_cache: |
|
|
|
|
|
keys: |
|
|
|
|
|
- v6-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} |
|
|
|
|
|
- v6-dependencies- |
|
|
|
|
|
# fallback to using the latest cache if no exact match is found |
|
|
|
|
|
|
|
|
|
|
|
- run: |
|
|
|
|
|
name: install dependencies |
|
|
|
|
|
command: | |
|
|
|
|
|
export FLASK_APP=autoapp.py |
|
|
|
|
|
pip install -r requirements/dev.txt |
|
|
|
|
|
flask db upgrade |
|
|
|
|
|
flask test |
|
|
|
|
|
- save_cache: |
|
|
|
|
|
paths: |
|
|
|
|
|
- venv |
|
|
|
|
|
key: v6-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
test: |
|
|
|
|
|
docker: |
|
|
|
|
|
# specify the version you desire here |
|
|
|
|
|
# use `-browsers` prefix for selenium tests, e.g. `3.6.1-browsers` |
|
|
|
|
|
|
|
|
|
|
|
# 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: |
|
|
|
|
|
PIPENV_VENV_IN_PROJECT: true |
|
|
|
|
|
DATABASE_URL: postgresql://root@localhost/circle_test?sslmode=disable |
|
|
|
|
|
POSTGRES_USER: myUsr |
|
|
|
|
|
POSTGRES_PASSOWRD: somePwd |
|
|
|
|
|
POSTGRES_DB: myUsr |
|
|
|
|
|
|
|
|
|
|
|
working_directory: ~/repo |
|
|
|
|
|
|
|
|
|
|
|
steps: |
|
|
|
|
|
- checkout |
|
|
|
|
|
|
|
|
steps: # steps that comprise the `build` job |
|
|
|
|
|
- checkout # check out source code to working directory |
|
|
- run: sudo chown -R circleci:circleci /usr/local/bin |
|
|
- run: sudo chown -R circleci:circleci /usr/local/bin |
|
|
- run: sudo chown -R circleci:circleci /usr/local/lib/python3.8/site-packages |
|
|
- run: sudo chown -R circleci:circleci /usr/local/lib/python3.8/site-packages |
|
|
|
|
|
|
|
|
# Download and cache dependencies |
|
|
|
|
|
- restore_cache: |
|
|
- restore_cache: |
|
|
keys: |
|
|
keys: |
|
|
- v6-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} |
|
|
|
|
|
- v6-dependencies- |
|
|
|
|
|
# fallback to using the latest cache if no exact match is found |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- v7-dependencies-{{ checksum "requirements/dev.txt" }} |
|
|
|
|
|
- v7-dependencies- |
|
|
- run: |
|
|
- run: |
|
|
name: bd upgrade |
|
|
|
|
|
command: | |
|
|
command: | |
|
|
export FLASK_APP=autoapp.py |
|
|
export FLASK_APP=autoapp.py |
|
|
. venv/bin/activate |
|
|
|
|
|
sleep 1 |
|
|
|
|
|
|
|
|
pip install -r requirements/dev.txt --user |
|
|
flask db upgrade |
|
|
flask db upgrade |
|
|
environment: |
|
|
|
|
|
CONDUIT_SECRET: 'something-really-secret' |
|
|
|
|
|
FLASK_APP: /home/circleci/repo/autoapp.py |
|
|
|
|
|
DATABASE_URL: postgresql://myUsr:somePwd@localhost:5432/myUsr?sslmode=disable |
|
|
|
|
|
FLASK_DEBUG: 1 |
|
|
|
|
|
# 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: | |
|
|
|
|
|
. 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?sslmode=disable |
|
|
|
|
|
|
|
|
|
|
|
- save_cache: |
|
|
- save_cache: |
|
|
paths: |
|
|
paths: |
|
|
- venv |
|
|
- venv |
|
|
key: v6-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
key: v7-dependencies-{{ checksum "requirements/dev.txt" }} |
|
|
back-deploy-heroku: |
|
|
back-deploy-heroku: |
|
|
docker: |
|
|
docker: |
|
|
- image: buildpack-deps:trusty |
|
|
- image: buildpack-deps:trusty |
|
|
|