Skip to content
This repository was archived by the owner on Feb 22, 2024. It is now read-only.

Commit bcc800e

Browse files
authored
Merge pull request #1531 from binary-com/development
V20200604_0
2 parents 34983f5 + 957e634 commit bcc800e

File tree

5 files changed

+570
-622
lines changed

5 files changed

+570
-622
lines changed

.circleci/config.yml

Lines changed: 57 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,14 @@ commands:
3838
- restore_cache:
3939
name: Restore npm cache
4040
keys:
41-
- npm-v1-{{ checksum "package.json" }}
41+
- npm-v1-{{ checksum "package-lock.json" }}
4242
- npm-v1-
4343
- run:
4444
name: Install npm modules
45-
command: npm install
45+
command: npm ci
4646
- save_cache:
4747
name: Save NPM cache
48-
key: npm-v1-{{ checksum "package.json" }}
48+
key: npm-v1-{{ checksum "package-lock.json" }}
4949
paths:
5050
- "node_modules"
5151

@@ -90,27 +90,45 @@ commands:
9090
aws-secret-access-key: env_CONTEXT_ARTIFACT_S3_AWS_SECRET_ACCESS_KEY
9191
aws-region: env_CONTEXT_ARTIFACT_S3_AWS_REGION
9292

93-
docker:
93+
docker_build_push:
9494
description: "Build and Push image to docker hub"
95+
parameters:
96+
docker_tag:
97+
type: string
98+
default: "beta-${CIRCLE_SHA1}"
99+
docker_latest_tag:
100+
type: string
101+
default: "beta-latest"
102+
nginx_location:
103+
type: string
104+
default: "/usr/share/nginx/html/beta"
95105
steps:
96106
- setup_remote_docker
97107
- run:
98108
name: Building docker image
99109
command: |
100-
docker build -t ${DOCKHUB_ORGANISATION}/binary-static-webtrader:${CIRCLE_SHA1} -t ${DOCKHUB_ORGANISATION}/binary-static-webtrader:latest .
110+
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 >> .
101111
- run:
102112
name: Pushing Image to docker hub
103113
command: |
104114
echo $DOCKERHUB_PASSWORD | docker login -u $DOCKERHUB_USERNAME --password-stdin
105-
docker push ${DOCKHUB_ORGANISATION}/binary-static-webtrader:${CIRCLE_SHA1}
106-
docker push ${DOCKHUB_ORGANISATION}/binary-static-webtrader:latest
107-
115+
docker push ${DOCKHUB_ORGANISATION}/binary-static-webtrader
108116
k8s_deploy:
109117
description: "Deploy to k8s cluster"
118+
parameters:
119+
k8s_svc_name:
120+
type: string
121+
default: "webtrader-beta-binary-com"
122+
docker_tag:
123+
type: string
124+
default: "beta-${CIRCLE_SHA1}"
125+
k8s-deployment:
126+
type: string
127+
default: "webtrader-beta-binary-com"
110128
steps:
111129
- k8s/install-kubectl
112130
- run:
113-
name: Deploying to k8s cluster for service binary-webtrader
131+
name: Deploying to k8s cluster for service << parameters.k8s_svc_name >>
114132
command: |
115133
for SERVER_ID in {1..5}
116134
do
@@ -124,11 +142,20 @@ commands:
124142
KUBE_SERVER="${!KUBE_SERVER_REF}"
125143
SERVICEACCOUNT_TOKEN="${!SERVICEACCOUNT_TOKEN_REF}"
126144
echo $CA_CRT | base64 --decode > ca.crt
127-
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:${CIRCLE_SHA1}
145+
kubectl --server=${KUBE_SERVER} --certificate-authority=ca.crt --token=$SERVICEACCOUNT_TOKEN set image deployment/<< parameters.k8s-deployment >> << parameters.k8s-deployment >>=${DOCKHUB_ORGANISATION}/binary-static-webtrader:<< parameters.docker_tag >>
128146
fi
129147
done
130148
jobs:
131-
release:
149+
release_development:
150+
docker:
151+
- image: circleci/node:12.13.0-stretch
152+
steps:
153+
- git_checkout_from_cache
154+
- npm_install
155+
- build
156+
- docker_build_push
157+
- k8s_deploy
158+
release_production:
132159
docker:
133160
- image: circleci/node:12.13.0-stretch
134161
steps:
@@ -138,14 +165,27 @@ jobs:
138165
- compress
139166
- upload_artifact # uploading the built code to s3 to create a backup of key services separate from Kubernetes deployment
140167
- upload_checksum # uploading compressed artifact checksum to cross match artifact fingerprint before actual deployment
141-
- docker
142-
- k8s_deploy
168+
- docker_build_push:
169+
docker_latest_tag: "latest"
170+
docker_tag: "${CIRCLE_SHA1}"
171+
nginx_location: "/usr/share/nginx/html"
172+
- k8s_deploy:
173+
k8s_svc_name: "webtrader-binary-com"
174+
docker_tag: "${CIRCLE_SHA1}"
175+
k8s-deployment: "webtrader-binary-com"
143176

144177
workflows:
145-
release:
146-
jobs:
147-
- release:
148-
context: binary-frontend-artifact-upload
178+
release_development:
179+
jobs:
180+
- release_development:
181+
filters:
182+
branches:
183+
only: /^development$/
184+
context: binary-frontend-artifact-upload
185+
release_production:
186+
jobs:
187+
- release_production:
149188
filters:
150189
branches:
151190
only: /^master$/
191+
context: binary-frontend-artifact-upload

Dockerfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
ARG NGINX_LOCATION=/usr/share/nginx/html/beta
12
FROM nginx:alpine
2-
COPY ./dist/compressed /usr/share/nginx/html
3+
ARG NGINX_LOCATION
4+
COPY ./dist/compressed $NGINX_LOCATION
35
COPY ./default.conf /etc/nginx/conf.d/default.conf

0 commit comments

Comments
 (0)