From e7f13156913c943cc3b8dedffbc4a3400d895348 Mon Sep 17 00:00:00 2001 From: khelia <58723166+khelia148@users.noreply.github.com> Date: Sun, 28 Mar 2021 11:02:00 +0200 Subject: [PATCH] update config.yml --- .circleci/config.yml | 174 +++++++++++++++++++++++++------------------ 1 file changed, 102 insertions(+), 72 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index efe84a1..b551cdb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,79 +1,109 @@ version: 2.1 -jobs: - install-dependencies: - docker: - - image: circleci/node:dubnium-browsers - steps: - - checkout - - restore_cache: - keys: - - dependencies-{{ checksum "package.json" }}-{{ .Environment.CACHE_VERSION }} - - dependencies- - - run: yarn global add node-gyp && yarn install - - save_cache: - paths: - - node_modules - key: dependencies-{{ checksum "package.json" }}-{{ .Environment.CACHE_VERSION }} - build: - docker: - - image: circleci/node:dubnium-browsers - steps: - - checkout - - restore_cache: - keys: - - dependencies-{{ checksum "package.json" }}-{{ .Environment.CACHE_VERSION }} - - dependencies- - - run: yarn build - #- run: - # name: Copy deployment artifacts to workspace - # command: | - # cp doc-server/ /tmp/server-doc -r - #- store_artifacts: - # path: /tmp/server-doc - # - persist_to_workspace: - #root: /tmp - #paths: - # - server-doc - frondend-deploy: - docker: - - image: circleci/node:dubnium-browsers - working_directory: ~/deploy-doc-server - steps: - - attach_workspace: - at: /tmp - - run: - name: Deploy app - command: | - npx netlify-cli deploy --site $NETLIFY_SITE_ID --auth $NETLIFY_ACCESS_TOKEN --dir /tmp/dist --prod - docker-buildandpush: - 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 $DOCKER_HUB_PASSWORD - docker tag app $DOCKER_HUB_USER_ID/$DOCKER_HUB_APP:$CIRCLE_BUILD_NUM - docker tag app $DOCKER_HUB_USER_ID/$DOCKER_HUB_APP:latest - docker push $DOCKER_HUB_USER_ID/$DOCKER_HUB_APP:$CIRCLE_BUILD_NUM - docker push $DOCKER_HUB_USER_ID/$DOCKER_HUB_APP:latest workflows: - version: 2.1 - build-deploy_frontend: + build_and_test: jobs: - - install-dependencies - - build: + - build + - lint: requires: - - install-dependencies - - fr ondend-deploy: + - build + - test: requires: - build - - docker-buildandpush: + - build_docker: + requires: + - lint + - test + filters: + branches: + only: + - main + - publish_image: + context: + - DOCKER requires: - - build \ No newline at end of file + - build_docker + filters: + branches: + only: + - main + - build_docs_artifact: + requires: + - lint + - test + filters: + branches: + only: + - main +jobs: + build: + docker: + - image: cimg/node:dubnium + steps: + - checkout + - restore_cache: + key: yarn-packages-v2{{ checksum "yarn.lock" }} + - run: yarn global add node-gyp && yarn install + - save_cache: + key: yarn-packages-v2{{ checksum "yarn.lock" }} + paths: + - ./node_modules + lint: + docker: + - image: cimg/node:dubnium + steps: + - checkout + - restore_cache: + key: yarn-packages-v2{{ checksum "yarn.lock" }} + - run : yarn lint && yarn format:check + test: + docker: + - image: cimg/node:dubnium + steps: + - checkout + - restore_cache: + key: yarn-packages-v2{{ checksum "yarn.lock" }} + - run : yarn test:ci + build_docker: + environment: + IMAGE_NAME: 698148/my-awesome-project + docker: + - image: circleci/buildpack-deps:stretch + steps: + - checkout + - setup_remote_docker + - run: docker image build --tag $IMAGE_NAME:app . + - run: docker save -o image.tar $IMAGE_NAME + - persist_to_workspace: + root: . + paths: + - ./image.tar + publish_image: + environment: + IMAGE_NAME: 698148/my-awesome-project + docker: + - image: circleci/buildpack-deps:stretch + steps: + - attach_workspace: + at: /tmp/workspace + - setup_remote_docker + - run: docker load -i /tmp/workspace/image.tar + - run: + name: Login and Publish to Docker Hub + command: | + echo "$DOCKERHUB_PASS" | docker login --username 698148 --password-stdin + docker tag $IMAGE_NAME:app $IMAGE_NAME:$CIRCLE_BUILD_NUM + docker tag $IMAGE_NAME:app $IMAGE_NAME:latest + docker push $IMAGE_NAME:$CIRCLE_BUILD_NUM + docker push $IMAGE_NAME:latest + build_docs_artifact: + docker: + - image: cimg/node:dubnium + steps: + - checkout + - restore_cache: + key: yarn-packages-v2{{ checksum "yarn.lock" }} + - run: yarn doc:build + - run: ls + - store_artifacts: + path: doc-server + destination: doc-server \ No newline at end of file