Skip to content
This repository was archived by the owner on Feb 22, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
b77c34c
Merge pull request #1492 from binary-com/development
ashkanx Sep 17, 2019
5c36fa9
Merge pull request #1496 from binary-com/development
oskar-binary Sep 17, 2019
a253ad1
Merge pull request #1500 from binary-com/development
oskar-binary Nov 4, 2019
45c5430
Revert "V20191104_0"
oskar-binary Nov 4, 2019
978123a
Merge pull request #1501 from binary-com/revert-1500-development
oskar-binary Nov 4, 2019
0b33588
Revert "Revert "V20191104_0""
oskar-binary Nov 4, 2019
49952c7
Merge pull request #1502 from binary-com/revert-1501-revert-1500-deve…
oskar-binary Nov 4, 2019
26eae84
move build to circleci (#1505)
4p00rv Nov 19, 2019
72293a5
add circleci and config to theirs
mustofa-binary Jan 22, 2020
ce18b0b
Merge pull request #1517 from mustofa-binary/development
oskar-binary Jan 22, 2020
7e67e9e
edit: disabled docker build and k8s deploy
shudarshon-deriv Jan 29, 2020
67b1331
edit: testing artifact storing configuration
shudarshon-deriv Jan 29, 2020
a1382b8
edit: edited project build command
shudarshon-deriv Jan 29, 2020
b55291b
edit: edited artifact path
shudarshon-deriv Jan 29, 2020
57c200e
using artifact path as compressed static content
shudarshon-deriv Jan 30, 2020
083d00b
edit: added artifact compression step
shudarshon-deriv Jan 30, 2020
e67bc1f
edit: added artifact moving step
shudarshon-deriv Jan 30, 2020
eddee1c
edit: edited artifact name and desitnation configuration
shudarshon-deriv Jan 30, 2020
2bd2fd0
add: added artifact upload to s3 step
shudarshon-deriv Jan 30, 2020
7fe1283
edit: added circle ci project name in s3 upload url
shudarshon-deriv Jan 30, 2020
c5df571
test: testing environment variable integration
shudarshon-deriv Jan 30, 2020
63ac8cb
testing circle ci variable
shudarshon-deriv Jan 30, 2020
ed15ef4
edit: edited orb alias and removed unwanted artifact configuration
shudarshon-deriv Jan 30, 2020
f7e514c
add: added commit-id/checksum as an added information regarding artficat
shudarshon-deriv Jan 30, 2020
dab9041
edit: testing circle ci config with singel step artifact upload
shudarshon-deriv Jan 30, 2020
5cddd6b
fix: fix s3 copy error in pipeline script
shudarshon-deriv Jan 30, 2020
e396bea
disabled checksum calculation and enabled commit id as artifact id
shudarshon-deriv Jan 30, 2020
a301d60
edit: enabled commit id upload as a jobs step
shudarshon-deriv Jan 30, 2020
3baa4fa
edit: uploading checksum instead of commit id
shudarshon-deriv Jan 30, 2020
29e49d7
add: add cron script for deployment
shudarshon-deriv Jan 30, 2020
f7f9823
changed access settings in aws
shudarshon-deriv Jan 30, 2020
d3d4bf2
edit: enabled all job steps to execute
shudarshon-deriv Feb 4, 2020
308d640
remove: removed unnecesary deployment script
shudarshon-deriv Feb 5, 2020
b308cc8
edit: using circle ci context variable instead of project based envva…
shudarshon-deriv Feb 5, 2020
4a2eced
test: testing s3 upload with metadata integration
shudarshon-deriv Feb 7, 2020
6b84fc0
test: testing s3 orb metadata
shudarshon-deriv Feb 7, 2020
2a89ddc
test: testing circleci orb metadata integration
shudarshon-deriv Feb 7, 2020
eb81cf7
test: testing circleci orb metadata integration
shudarshon-deriv Feb 7, 2020
7c68a91
test: testing bash variable integration with s3 orb metadata
shudarshon-deriv Feb 7, 2020
80a413d
test: using BASH_ENV to retrieve bash environment value in pipeline
shudarshon-deriv Feb 7, 2020
b38b8e5
test: using to retrieve bash environment value in pipeline
shudarshon-deriv Feb 7, 2020
b3c722a
test: testing with commit id as artifact id
shudarshon-deriv Feb 7, 2020
474404d
add: tagging commit id as artifact identifier
shudarshon-deriv Feb 7, 2020
3305c0a
edit: edited context name
shudarshon-deriv Feb 7, 2020
4ba0903
Merge pull request #1518 from shudarshon-binary/master
4p00rv Feb 17, 2020
94b9fbd
Added .gitlab-ci.yml to exception in gh-pages clean script
msamprz Mar 11, 2020
db9d7c4
Merge branch 'development' into 'master'
Mar 11, 2020
fbb5d76
Add docker image to release with latest tag
Mar 13, 2020
87daab1
Merge pull request #1519 from afshinpaydar-binary/Add_latest_tag_to_d…
4p00rv Mar 20, 2020
8efde02
revert: Gitlab CI config exception in `clean`
msamprz Mar 30, 2020
ab1ba21
Merge pull request #1521 from mahdipourziaei-binary/master
oskar-binary Mar 30, 2020
086338d
multi cluster release (#1520)
Mahboobeh-binary Apr 2, 2020
1ac5001
add missing context (#1523)
Mahboobeh-binary Apr 3, 2020
8a813e6
refactor_circleci_config
Apr 6, 2020
5ff0ad6
refactor_circleci_config
Apr 6, 2020
fc375cc
refactor_circleci_config
Apr 6, 2020
7fc46b8
fix build error
Apr 6, 2020
b4c77f5
refactor_circleci_config
Apr 6, 2020
785e1d1
refactor_circleci_config
Apr 6, 2020
6dd2173
refactor_circleci_config
Apr 6, 2020
1996da2
refactor_circleci_config#1
Apr 6, 2020
6ab3ef0
refactor_circleci_config#2
Apr 6, 2020
9218df2
refactor_circleci_config#3
Apr 6, 2020
775dc17
refactor_circleci_config#4
Apr 6, 2020
2c1ace6
refactor_circleci_config#5
Apr 6, 2020
3f02bec
refactor_circleci_config#6
Apr 6, 2020
54bcb12
refactor_circleci_config#7
Apr 6, 2020
4d5acf8
refactor_circleci_config#8
Apr 6, 2020
ff6a31c
refactor_circleci_config
Apr 6, 2020
f8c248f
refactor_circleci_config
Apr 6, 2020
8bbc2e8
dynamic nginx location
Apr 7, 2020
565bef1
remove test workflow
Apr 7, 2020
29bf41b
change npm install to watch package-lock.json
Apr 10, 2020
ce2c462
change cache key checksum
Apr 10, 2020
316cd05
fix mistakenly k8s deployment
Apr 10, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
145 changes: 118 additions & 27 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
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"
Expand All @@ -11,8 +12,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
Expand All @@ -23,7 +24,7 @@ commands:
fi
- checkout
- run:
name: Compress git objects
name: Compress git objects
command: git gc
- save_cache:
name: Git save cache
Expand All @@ -37,64 +38,154 @@ commands:
- restore_cache:
name: Restore npm cache
keys:
- npm-v1-{{ checksum "package.json" }}
- npm-v1-{{ checksum "package-lock.json" }}
- npm-v1-
- run:
name: Install npm modules
command: npm install
command: npm ci
- save_cache:
name: Save NPM cache
key: npm-v1-{{ checksum "package.json" }}
key: npm-v1-{{ checksum "package-lock.json" }}
paths:
- "node_modules"

build:
description: "Build"
steps:
- run:
name: "Grunt deploy"
command: npm run deploy-ci
name: "Compile project"
command: npm run build

docker:
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:
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 -t ${DOCKHUB_ORGANISATION}/binary-static-webtrader:beta-${CIRCLE_SHA1} .
- run:
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:
name: Pushing Image to docker hub
command: |
echo $DOCKERHUB_PASSWORD | docker login -u $DOCKERHUB_USERNAME --password-stdin
docker push ${DOCKHUB_ORGANISATION}/binary-static-webtrader:beta-${CIRCLE_SHA1}

docker push ${DOCKHUB_ORGANISATION}/binary-static-webtrader
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}"
k8s-deployment:
type: string
default: "webtrader-beta-binary-com"
steps:
- k8s/install-kubectl
- run:
name: Deploying to k8s cluster for service binary-webtrader
- run:
name: Deploying to k8s cluster for service << parameters.k8s_svc_name >>
command: |
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}

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/<< parameters.k8s-deployment >> << parameters.k8s-deployment >>=${DOCKHUB_ORGANISATION}/binary-static-webtrader:<< parameters.docker_tag >>
fi
done
jobs:
release:
release_development:
docker:
- image: circleci/node:12.13.0-stretch
steps:
- git_checkout_from_cache
- npm_install
- build
- docker
- docker_build_push
- 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}"
k8s-deployment: "webtrader-binary-com"

workflows:
release:
jobs:
- release:
release_development:
jobs:
- release_development:
filters:
branches:
only: /^development$/

only: /^development$/
context: binary-frontend-artifact-upload
release_production:
jobs:
- release_production:
filters:
branches:
only: /^master$/
context: binary-frontend-artifact-upload
4 changes: 3 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
ARG NGINX_LOCATION=/usr/share/nginx/html/beta
FROM nginx:alpine
COPY ./dist/compressed /usr/share/nginx/html/beta
ARG NGINX_LOCATION
COPY ./dist/compressed $NGINX_LOCATION
COPY ./default.conf /etc/nginx/conf.d/default.conf