1
1
version : 2
2
2
defaults : &defaults
3
3
docker :
4
- - image : docker:18.06-git
4
+ - image : circleci/python:2.7-stretch-browsers
5
5
install_dependency : &install_dependency
6
- name : Installation of build and deployment dependencies.
7
- command : |
8
- apk update
9
- apk add --no-cache bash curl
10
- apk upgrade
11
- apk add --no-cache jq py-pip sudo
12
- sudo pip install awscli --upgrade
13
- sudo pip install docker-compose
14
-
6
+ name : Installation of build and deployment dependencies.
7
+ command : |
8
+ sudo apt install jq
9
+ sudo pip install awscli --upgrade
10
+ sudo pip install docker-compose
15
11
install_deploysuite : &install_deploysuite
16
- name : Installation of install_deploysuite.
17
- command : |
18
- git clone --branch v1.3 https://github.com/topcoder-platform/tc-deploy-scripts ../buildscript
19
- cp ./../buildscript/master_deploy.sh .
20
- cp ./../buildscript/buildenv.sh .
21
- cp ./../buildscript/awsconfiguration.sh .
22
-
12
+ name : Installation of install_deploysuite.
13
+ command : |
14
+ git clone --branch v1.4 https://github.com/topcoder-platform/tc-deploy-scripts ../buildscript
15
+ cp ./../buildscript/master_deploy.sh .
16
+ cp ./../buildscript/buildenv.sh .
17
+ cp ./../buildscript/awsconfiguration.sh .
23
18
restore_cache_settings_for_build : &restore_cache_settings_for_build
24
- key : docker-node-modules-la- {{ checksum "package-lock.json" }}
19
+ key : docker-node-modules-{{ checksum "package-lock.json" }}
25
20
26
21
save_cache_settings : &save_cache_settings
27
- key : docker-node-modules-la- {{ checksum "package-lock.json" }}
22
+ key : docker-node-modules-{{ checksum "package-lock.json" }}
28
23
paths :
29
24
- node_modules
30
25
31
- run_build : &run_build
32
- name : Build of Docker image
33
- command : ./build.sh
34
-
35
- jobs :
36
- # Build & Deploy against development backend
37
- " build-dev " :
38
- << : *defaults
39
- steps :
26
+ builddeploy_steps : &builddeploy_steps
40
27
- checkout
41
28
- setup_remote_docker
42
29
- run : *install_dependency
43
30
- run : *install_deploysuite
44
31
- restore_cache : *restore_cache_settings_for_build
45
- - run : *run_build
32
+ - run : ./build.sh ${APPNAME}
46
33
- save_cache : *save_cache_settings
47
34
- deploy :
48
35
name : Running MasterScript.
49
36
command : |
50
- ./awsconfiguration.sh DEV
51
- source awsenvconf
52
- ./buildenv.sh -e DEV -b dev-leaderboard-api -deployvar
37
+ ./awsconfiguration.sh $DEPLOY_ENV
38
+ source awsenvconf
39
+ ./buildenv.sh -e $DEPLOY_ENV -b ${LOGICAL_ENV}-${APPNAME} -deployvar
53
40
source buildenvvar
54
- ./master_deploy.sh -d ECS -e DEV -t latest -s dev-leaderboard-api- appvar -i leaderboard-api
41
+ ./master_deploy.sh -d ECS -e $DEPLOY_ENV -t latest -s ${LOGICAL_ENV}-global-appvar,${LOGICAL_ENV}-${APPNAME}- appvar -i ${APPNAME}
55
42
56
- # Build & Deploy against production backend
43
+
44
+ jobs :
45
+ # Build & Deploy against development backend
46
+ " build-dev " :
47
+ << : *defaults
48
+ environment :
49
+ DEPLOY_ENV : " DEV"
50
+ LOGICAL_ENV : " dev"
51
+ APPNAME : " leaderboard-api"
52
+ steps : *builddeploy_steps
57
53
58
54
" build-prod " :
59
55
<< : *defaults
60
- steps :
61
- - checkout
62
- - setup_remote_docker
63
- - run : *install_dependency
64
- - run : *install_deploysuite
65
- - restore_cache : *restore_cache_settings_for_build
66
- - run : *run_build
67
- - save_cache : *save_cache_settings
68
- - deploy :
69
- name : Running MasterScript.
70
- command : |
71
- ./awsconfiguration.sh PROD
72
- source awsenvconf
73
- ./buildenv.sh -e PROD -b prod-leaderboard-api-deployvar
74
- source buildenvvar
75
- ./master_deploy.sh -d ECS -e PROD -t latest -s prod-leaderboard-api-appvar -i leaderboard-api
76
-
56
+ environment :
57
+ DEPLOY_ENV : " PROD"
58
+ LOGICAL_ENV : " prod"
59
+ APPNAME : " leaderboard-api"
60
+ steps : *builddeploy_steps
61
+
77
62
workflows :
78
63
version : 2
79
64
build :
@@ -83,10 +68,13 @@ workflows:
83
68
context : org-global
84
69
filters :
85
70
branches :
86
- only : ["develop","circleci"]
71
+ only :
72
+ - develop
73
+
74
+ # Production builds are exectuted only on tagged commits to the
75
+ # master branch.
87
76
- " build-prod " :
88
- context : org-global
77
+ context : org-global
89
78
filters :
90
79
branches :
91
- only :
92
- - master
80
+ only : master
0 commit comments