From d5af4552c5251f942045244b73873a8d369c6896 Mon Sep 17 00:00:00 2001 From: Hugo Nollet Date: Sat, 15 Jan 2022 19:09:56 +0100 Subject: [PATCH] :construction_worker: add circleci config --- .circleci/config.yml | 97 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..b5e2f05 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,97 @@ +version: 2 +jobs: + install: &shared-config + docker: + - image: circleci/node:lts-fermium + working_directory: ~/repo + steps: + - checkout + - restore_cache: + keys: + - dependencies-{{ checksum "package.json" }}-v1 + - dependencies- + - run: yarn install + - save_cache: + paths: + - node_modules + key: dependencies-{{ checksum "package.json" }}-v1 + + unit-tests: + <<: *shared-config + steps: + - checkout + - restore_cache: + keys: dependencies-{{ checksum "package.json" }}-v1 + - run: yarn test:unit + + build: + <<: *shared-config + environment: + - VITE_BACKEND_URL_URL: $VITE_BACKEND_URL_URL + steps: + - checkout + - restore_cache: + keys: + - dependencies-{{ checksum "package.json" }}-v1 + - dependencies- + - run: yarn build + + front-netlify-deploy: + <<: *shared-config + steps: + - checkout + - restore_cache: + keys: + - dependencies-{{ checksum "package.json" }}-v1 + - dependencies- + - run: + name: Install netlify + command: | + yarn add -D netlify-cli + - run: + name: Deploy app + command: yarn netlify deploy --auth $NETLIFY_AUTH_TOKEN --dir ~/repo --site $NETLIFY_SITE_ID --prod + + docker-build-and-push: + working_directory: /dockerapp + docker: + - image: docker:17.05.0-ce-git + steps: + - checkout + - setup_remote_docker: + version: 19.03.13 + - 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 $DOCKERHUB_PWD + docker tag app $DOCKER_HUB_USER_ID/$DOCKER_HUB_NAME:$CIRCLE_BUILD_NUM + docker tag app $DOCKER_HUB_USER_ID/$DOCKER_HUB_NAME:latest + docker push $DOCKER_HUB_USER_ID/$DOCKER_HUB_NAME:$CIRCLE_BUILD_NUM + docker push $DOCKER_HUB_USER_ID/$DOCKER_HUB_NAME:latest +workflows: + version: 2 + build-test-and-lint: + jobs: + - install + - unit-tests: + requires: + - install + - build: + requires: + - unit-tests + - docker-build-and-push: + requires: + - build + filters: + branches: + only: main + - front-netlify-deploy: + requires: + - build + filters: + branches: + only: main \ No newline at end of file