diff --git a/.circleci/config.yml b/.circleci/config.yml index 53e5213..39ee0a4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,51 +1,41 @@ -workflows: - version: 2 - build_circleci: - jobs: - - build - - test: - requires: - - build - - version: 2 jobs: build: docker: - - image: circleci/python:3.7.4 - working_directory: ~/repo + - image: circleci/python:latest steps: - checkout - restore_cache: keys: - v3-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} - v3-dependencies- + - run: - name: install dependencies + name: Install Python deps in a venv command: | python3 -m venv venv . venv/bin/activate pip install -r requirements/dev.txt environment: CONDUIT_SECRET: 'something-really-secret' - FLASK_APP: /home/circleci/repo/autoapp.py + FLASK_APP: autoapp.py FLASK_DEBUG: 1 - + - save_cache: paths: - venv key: v3-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} + test: docker: - - image: circleci/python:3.7.4 - - image: postgres:9.6.2-alpine + - image: circleci/python:latest + + - image: circleci/postgres:9.6.2-alpine environment: - POSTGRES_USER: myUser - POSTGRES_PASSOWRD: somePwd - POSTGRES_DB: mydb - - working_directory: ~/repo + POSTGRES_USER: myUser + POSTGRES_PASSWORD: somePwd + POSTGRES_BD: mydb steps: - checkout @@ -53,39 +43,99 @@ jobs: keys: - v3-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} - v3-dependencies- + - run: - name: bd upgrade + name: wait for postgres + command: dockerize -wait tcp://localhost:5432 -timeout 1m + + - run: + name: flask upgrade command: | . venv/bin/activate sleep 1 flask db upgrade environment: CONDUIT_SECRET: 'something-really-secret' - FLASK_APP: /home/circleci/repo/autoapp.py + FLASK_APP: autoapp.py DATABASE_URL: postgresql://myUser:somePwd@localhost:5432/mydb FLASK_DEBUG: 1 POSTGRES_USER: myUser POSTGRES_DB: mydb POSTGRES_PASSWORD: somePwd POSTGRES_PORT: 5432 - + + - run: - name: run tests + name: flask test command: | . venv/bin/activate + sleep 1 flask db migrate - flask test + flask test environment: CONDUIT_SECRET: 'something-really-secret' - FLASK_APP: /home/circleci/repo/autoapp.py + FLASK_APP: autoapp.py DATABASE_URL: postgresql://myUser:somePwd@localhost:5432/mydb FLASK_DEBUG: 1 POSTGRES_USER: myUser POSTGRES_DB: mydb POSTGRES_PASSWORD: somePwd POSTGRES_PORT: 5432 - + - save_cache: paths: - venv - key: v3-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} \ No newline at end of file + key: v3-dependencies-{{ checksum "requirements/dev.txt" }}-{{ checksum "requirements/prod.txt" }} + + + + + deploy: + docker: + - image: buildpack-deps:trusty + steps: + - checkout + - run: + name: heroku deploy + command: | + git push https://heroku:02467a97-3871-4afd-95ab-2b1a1c190165@git.heroku.com/warm-fortress-97103.git HEAD:main + + + + +# docker-build-and-push: +# docker: +# - image: docker:17.05.0-ce-git +# steps: +# - checkout +# - setup_remote_docker +# - run: +# name: Build application Docker image +# command: | +# docker build --cache-from=app -t app . +# - deploy: +# name: Publish application to docker hub +# command: | +# docker login -e $DOCKER_HUB_EMAIL -u $DOCKER_HUB_USER_ID -p 'DOCKERPASSWORD' +# docker tag app $DOCKER_HUB_USER_ID/my-python-app:$CIRCLE_BUILD_NUM +# docker tag app $DOCKER_HUB_USER_ID/my-python-app:latest +# docker push $DOCKER_HUB_USER_ID/my-python-app:$CIRCLE_BUILD_NUM +# docker push $DOCKER_HUB_USER_ID/my-python-app:latest + + + +workflows: + version: 2 + build-deploy: + jobs: + - build + - test: + requires: + - build + - deploy: + requires: + - build +# - docker-build-and-push: +# context: +# - docker + \ No newline at end of file