From 7bc1dfa247a039cda281dcd4587e8b3b3c218a14 Mon Sep 17 00:00:00 2001 From: Apoorv Joshi Date: Fri, 10 Apr 2020 21:17:34 +0800 Subject: [PATCH] Revert "Refactor circleci config (#1524)" This reverts commit 3e014d117910392bf1e262783931545b9dc581bc. --- .circleci/config.yml | 141 +++++++++---------------------------------- Dockerfile | 4 +- 2 files changed, 28 insertions(+), 117 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6e3feb826e..ed42a02103 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,7 +1,6 @@ version: 2.1 orbs: k8s: circleci/kubernetes@0.7.0 - s3: circleci/aws-s3@1.0.13 commands: git_checkout_from_cache: description: "Git checkout and save cache" @@ -12,8 +11,8 @@ commands: - source-v1-{{ .Branch }}-{{ .Revision }} - source-v1-{{ .Branch }}- - source-v1- - - run: - name: Fetch git tags + - run: + name: Fetch git tags command: | mkdir -p ~/.ssh echo 'github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ== ' >> ~/.ssh/known_hosts @@ -24,7 +23,7 @@ commands: fi - checkout - run: - name: Compress git objects + name: Compress git objects command: git gc - save_cache: name: Git save cache @@ -38,14 +37,14 @@ commands: - restore_cache: name: Restore npm cache keys: - - npm-v1-{{ checksum "package-lock.json" }} + - npm-v1-{{ checksum "package.json" }} - npm-v1- - run: name: Install npm modules - command: npm ci + command: npm install - save_cache: name: Save NPM cache - key: npm-v1-{{ checksum "package-lock.json" }} + key: npm-v1-{{ checksum "package.json" }} paths: - "node_modules" @@ -53,135 +52,49 @@ commands: description: "Build" steps: - run: - name: "Compile project" - command: npm run build + name: "Grunt deploy" + command: npm run deploy-ci - compress: - description: "Compress" - steps: - - run: - name: "Compress" - command: | - pushd dist/compressed/ - tar -cvf artifact.tar * - mv artifact.tar ${OLDPWD}/ - - run: - name: "Tag commit id as artifact identifer" - command: echo "${CIRCLE_SHA1}" > artifact-info.txt - - upload_artifact: - description: "upload build artifact to s3 bucket" - steps: - - s3/copy: - from: artifact.tar - to: 's3://${CONTEXT_ARTIFACT_S3_BUCKET}/${CIRCLE_PROJECT_REPONAME}/' - aws-access-key-id: env_CONTEXT_ARTIFACT_S3_AWS_ACCESS_KEY_ID - aws-secret-access-key: env_CONTEXT_ARTIFACT_S3_AWS_SECRET_ACCESS_KEY - aws-region: env_CONTEXT_ARTIFACT_S3_AWS_REGION - arguments: '--metadata "{\"x-amz-artifact-id\": \"${CIRCLE_SHA1}\" }"' - - upload_checksum: - description: "upload artifact checksum to s3" - steps: - - s3/copy: - from: artifact-info.txt - to: 's3://${CONTEXT_ARTIFACT_S3_BUCKET}/${CIRCLE_PROJECT_REPONAME}/' - aws-access-key-id: env_CONTEXT_ARTIFACT_S3_AWS_ACCESS_KEY_ID - aws-secret-access-key: env_CONTEXT_ARTIFACT_S3_AWS_SECRET_ACCESS_KEY - aws-region: env_CONTEXT_ARTIFACT_S3_AWS_REGION - - docker_build_push: + docker: description: "Build and Push image to docker hub" - parameters: - docker_tag: - type: string - default: "beta-${CIRCLE_SHA1}" - docker_latest_tag: - type: string - default: "beta-latest" - nginx_location: - type: string - default: "/usr/share/nginx/html/beta" steps: - setup_remote_docker - - run: + - run: name: Building docker image command: | - docker build --build-arg NGINX_LOCATION=<< parameters.nginx_location >> -t ${DOCKHUB_ORGANISATION}/binary-static-webtrader:<< parameters.docker_tag >> -t ${DOCKHUB_ORGANISATION}/binary-static-webtrader:<< parameters.docker_latest_tag >> . - - run: + docker build -t ${DOCKHUB_ORGANISATION}/binary-static-webtrader:beta-${CIRCLE_SHA1} . + - run: name: Pushing Image to docker hub command: | echo $DOCKERHUB_PASSWORD | docker login -u $DOCKERHUB_USERNAME --password-stdin - docker push ${DOCKHUB_ORGANISATION}/binary-static-webtrader + docker push ${DOCKHUB_ORGANISATION}/binary-static-webtrader:beta-${CIRCLE_SHA1} + k8s_deploy: description: "Deploy to k8s cluster" - parameters: - k8s_svc_name: - type: string - default: "webtrader-beta-binary-com" - docker_tag: - type: string - default: "beta-${CIRCLE_SHA1}" steps: - k8s/install-kubectl - - run: - name: Deploying to k8s cluster for service << parameters.k8s_svc_name >> + - run: + name: Deploying to k8s cluster for service binary-webtrader command: | - for SERVER_ID in {1..5} - do - KUBE_SERVER_REF="KUBE_SERVER_$SERVER_ID" - SERVICEACCOUNT_TOKEN_REF="SERVICEACCOUNT_TOKEN_$SERVER_ID" - CA_CRT_REF="CA_CRT_$SERVER_ID" - if [ ! -z "${!KUBE_SERVER_REF}" ] - then - echo "Deploying to cluster $SERVER_ID" - CA_CRT="${!CA_CRT_REF}" - KUBE_SERVER="${!KUBE_SERVER_REF}" - SERVICEACCOUNT_TOKEN="${!SERVICEACCOUNT_TOKEN_REF}" - echo $CA_CRT | base64 --decode > ca.crt - kubectl --server=${KUBE_SERVER} --certificate-authority=ca.crt --token=$SERVICEACCOUNT_TOKEN set image deployment/webtrader-binary-com webtrader-binary-com=${DOCKHUB_ORGANISATION}/binary-static-webtrader:<< parameters.docker_tag >> - fi - done + echo $CA_CRT | base64 --decode > ca.crt + kubectl --server=${KUBE_SERVER} --certificate-authority=ca.crt --token=$SERVICEACCOUNT_TOKEN set image deployment/webtrader-beta-binary-com webtrader-beta-binary-com=${DOCKHUB_ORGANISATION}/binary-static-webtrader:beta-${CIRCLE_SHA1} + jobs: - release_development: + release: docker: - image: circleci/node:12.13.0-stretch steps: - git_checkout_from_cache - npm_install - build - - docker_build_push + - docker - k8s_deploy - release_production: - docker: - - image: circleci/node:12.13.0-stretch - steps: - - git_checkout_from_cache - - npm_install - - build - - compress - - upload_artifact # uploading the built code to s3 to create a backup of key services separate from Kubernetes deployment - - upload_checksum # uploading compressed artifact checksum to cross match artifact fingerprint before actual deployment - - docker_build_push: - docker_latest_tag: "latest" - docker_tag: "${CIRCLE_SHA1}" - nginx_location: "/usr/share/nginx/html" - - k8s_deploy: - k8s_svc_name: "webtrader-binary-com" - docker_tag: "${CIRCLE_SHA1}" - + workflows: - release_development: - jobs: - - release_development: + release: + jobs: + - release: filters: branches: - only: /^development$/ - context: binary-frontend-artifact-upload - release_production: - jobs: - - release_production: - filters: - branches: - only: /^master$/ - context: binary-frontend-artifact-upload + only: /^development$/ + diff --git a/Dockerfile b/Dockerfile index 6d049c4c4f..2d45bb666b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,3 @@ -ARG NGINX_LOCATION=/usr/share/nginx/html/beta FROM nginx:alpine -ARG NGINX_LOCATION -COPY ./dist/compressed $NGINX_LOCATION +COPY ./dist/compressed /usr/share/nginx/html/beta COPY ./default.conf /etc/nginx/conf.d/default.conf