From 9cdd0ac1eb4cfdc01a08058185bcaba426e945ac Mon Sep 17 00:00:00 2001 From: Tarskan <55380090+Tarskan@users.noreply.github.com> Date: Mon, 25 Oct 2021 11:49:51 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=B7=20Create=20config.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .circleci/config.yml | 169 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..aece170 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,169 @@ +version: 2 +jobs: + build: &shared-config + docker: + - image: circleci/node:lts-fermium + working_directory: ~/repo + steps: + - checkout + - restore_cache: + keys: + - dependencies-{{ checksum "package.json" }}-v1 + # fallback to using the latest cache if no exact match is found + - dependencies- + - run: yarn install + - save_cache: + paths: + - node_modules + key: dependencies-{{ checksum "package.json" }}-v1 + lint: + <<: *shared-config + steps: + - checkout + - restore_cache: + key: dependencies-{{ checksum "package.json" }}-v1 + - run: yarn lint + - run: yarn format:check + server-doc-build: + <<: *shared-config + steps: + - checkout + - restore_cache: + key: dependencies-{{ checksum "package.json" }}-v1 + - run: yarn doc:build + - run: + name: Copy deployment artifacts to workspace + command: | + cp docs/ /tmp/server-doc -r + - store_artifacts: + path: /tmp/server-doc + - persist_to_workspace: + root: /tmp + paths: + - server-doc + server-doc-deploy: + <<: *shared-config + working_directory: ~/deploy-doc-server + steps: + - attach_workspace: + at: /tmp + - run: + name: Install netlify + command: yarn add netlify-cli -D + - run: + name: Deploy app + command: yarn netlify deploy --prod --dir=/tmp/server-doc + back-test-unit: + <<: *shared-config + steps: + - checkout + - restore_cache: + key: dependencies-{{ checksum "package.json" }}-v1 + - run: + command: yarn test + environment: + DATABASE_URL: postgres://psqluer:psqlpassword@localhost:5432/psqluer + back-test-e2e: + docker: + - image: circleci/node:lts-fermium + - image: circleci/postgres:9.6.5 + environment: + POSTGRES_DB: psqluer + POSTGRES_USER: psqluer + POSTGRES_PASSWORD: psqlpassword + working_directory: ~/repo + steps: + - checkout + - restore_cache: + key: dependencies-{{ checksum "package.json" }}-v1 + - run: + command: echo ok + environment: + DATABASE_URL: postgres://psqluer:psqlpassword@localhost:5432/psqluer + + docker-build-and-push: + working_directory: /dockerapp + 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 . + echo true + - deploy: + name: Publish application to docker hub + command: | + # docker login -e $DOCKER_HUB_EMAIL -u $DOCKER_HUB_USER_ID -p $DOCKER_HUB_PWD + # docker tag app $DOCKER_HUB_USER_ID/my-awesome-ci-expr:$CIRCLE_BUILD_NUM + # docker tag app $DOCKER_HUB_USER_ID/my-awesome-ci-expr:latest + # docker push $DOCKER_HUB_USER_ID/my-awesome-ci-expr:$CIRCLE_BUILD_NUM + # docker push $DOCKER_HUB_USER_ID/my-awesome-ci-expr:latest + echo true + + back-deploy-heroku: + docker: + - image: buildpack-deps:trusty + steps: + - checkout + - run: + name: Heroku Deploy + command: git push https://heroku:$HEROKU_KEY@git.heroku.com/whispering-beach-97898.git HEAD:main + - run: + name: Smoke Test + command: | + HTTPCODE=`curl -s -o /dev/null -w "%{http_code}" https://whispering-beach-97898.herokuapp.com/` + if [ "$HTTPCODE" -ne 200 ];then + echo "heroku app not responding, failing deploy" + exit 1 + fi + +workflows: + version: 2 + build-test-and-lint: + jobs: + - build + - back-test-unit: + requires: + - build + - back-test-e2e: + requires: + - build + - lint: + requires: + - build + - docker-build-and-push: + requires: + - build + - lint + - back-test-e2e + - back-test-unit + filters: + branches: + only: main + - back-deploy-heroku: + requires: + - build + - lint + - back-test-e2e + - back-test-unit + filters: + branches: + only: main + - server-doc-build: + requires: + - build + - lint + - back-test-e2e + - back-test-unit + filters: + branches: + only: main + - server-doc-deploy: + requires: + - server-doc-build + filters: + branches: + only: main \ No newline at end of file