1
- version : 2
1
+ version : 2.1
2
2
jobs :
3
- build :
3
+ develop_deploy :
4
4
docker :
5
5
- image : cimg/node:16.19.1-browsers
6
6
environment :
@@ -11,23 +11,233 @@ jobs:
11
11
POSTGRES_DB : analytics-api-test
12
12
steps :
13
13
- checkout
14
+
14
15
- restore_cache :
15
16
keys :
16
17
- v1-dependencies-{{ checksum "package.json" }}
17
18
- v1-dependencies-
19
+
18
20
- run :
19
21
name : install dependencies
20
22
command : npm install
23
+
21
24
- save_cache :
22
25
paths :
23
26
- ./node_modules
24
27
key : v1-dependencies-{{ checksum "package.json" }}
28
+
25
29
- run :
26
- name : run tests
27
- command : npm test
30
+ name : run tests
31
+ command : npm test
32
+
28
33
- run :
29
- name : deploy site
34
+ name : Replace Data URL in manifest.yml file when deploying to develop
30
35
command : |
31
- if [ "${CIRCLE_BRANCH}" == "master" ]; then
32
- bin/deploy-ci.sh
33
- fi
36
+ sudo apt-get update
37
+ sudo apt-get install gettext
38
+ sed -i 's@name: analytics-reporter-api@name: analytics-reporter-api-develop@g' manifest.yml
39
+ sed -i 's@- analytics-reporter-database@- analytics-reporter-database-develop@g' manifest.yml
40
+ mv manifest.yml manifest.yml.src
41
+ envsubst < manifest.yml.src > manifest.yml
42
+
43
+ - run :
44
+ name : Run sed on entrypoint.sh when deploying to develop
45
+ command : |
46
+ sed -i 's@NEW_RELIC_APP_NAME="analytics-reporter-api"@NEW_RELIC_APP_NAME="analytics-reporter-api-develop"@g' entrypoint.sh
47
+
48
+ - run :
49
+ name : Delete Config.js and drop sufffix on Config.js.cloudgov
50
+ command : |
51
+ rm ./src/config.js
52
+ mv ./src/config.js.cloudgov ./src/config.js
53
+ rm knexfile.js
54
+ mv knexfile.js.cloudgov knexfile.js
55
+
56
+ - run :
57
+ name : Install CF CLI
58
+ command : |
59
+ sudo curl -v -L -o cf8-cli-installer_8.7.4_x86-64.deb 'https://packages.cloudfoundry.org/stable?release=debian64&version=8.7.4'
60
+ sudo dpkg -i cf8-cli-installer_8.7.4_x86-64.deb
61
+
62
+ - run :
63
+ name : deploy
64
+ command : |
65
+ set -e
66
+ # Log into cloud.gov
67
+ cf api api.fr.cloud.gov
68
+ cf login -u $CF_USERNAME_DEV -p $CF_PASSWORD_DEV -o gsa-opp-analytics -s analytics-dev
69
+ cat manifest.yml
70
+ cf push -f "./manifest.yml"
71
+ cf set-env analytics-reporter-api-develop API_DATA_GOV_SECRET "$API_SECRET"
72
+ cf restage analytics-reporter-api-develop
73
+ cf logout
74
+
75
+ staging_deploy :
76
+ docker :
77
+ - image : cimg/node:16.19.1-browsers
78
+ environment :
79
+ POSTGRES_USER : postgres
80
+ NODE_ENV : test
81
+ - image : circleci/postgres:9.5-alpine
82
+ environment :
83
+ POSTGRES_DB : analytics-api-test
84
+ steps :
85
+ - checkout
86
+
87
+ - restore_cache :
88
+ keys :
89
+ - v1-dependencies-{{ checksum "package.json" }}
90
+ - v1-dependencies-
91
+
92
+ - run :
93
+ name : install dependencies
94
+ command : npm install
95
+
96
+ - save_cache :
97
+ paths :
98
+ - ./node_modules
99
+ key : v1-dependencies-{{ checksum "package.json" }}
100
+
101
+ - run :
102
+ name : run tests
103
+ command : npm test
104
+
105
+ - run :
106
+ name : Replace Data URL in manifest.yml file when deploying to staging
107
+ command : |
108
+ sudo apt-get update
109
+ sudo apt-get install gettext
110
+ sed -i 's@name: analytics-reporter-api@name: analytics-reporter-api-staging@g' manifest.yml
111
+ sed -i 's@- analytics-reporter-database@- analytics-reporter-database-staging@g' manifest.yml
112
+ mv manifest.yml manifest.yml.src
113
+ envsubst < manifest.yml.src > manifest.yml
114
+
115
+ - run :
116
+ name : Run sed on entrypoint.sh when deploying to staging
117
+ command : |
118
+ sed -i 's@NEW_RELIC_APP_NAME="analytics-reporter-api"@NEW_RELIC_APP_NAME="analytics-reporter-api-staging"@g' entrypoint.sh
119
+
120
+ - run :
121
+ name : Delete Knexfile.js and drop sufffix on Knexfile.js.cloudgov
122
+ command : |
123
+ rm knexfile.js
124
+ mv knexfile.js.cloudgov knexfile.js
125
+ rm ./src/config.js
126
+ mv ./src/config.js.cloudgov ./src/config.js
127
+
128
+ - run :
129
+ name : Install CF CLI
130
+ command : |
131
+ sudo curl -v -L -o cf8-cli-installer_8.7.4_x86-64.deb 'https://packages.cloudfoundry.org/stable?release=debian64&version=8.7.4'
132
+ sudo dpkg -i cf8-cli-installer_8.7.4_x86-64.deb
133
+
134
+ - run :
135
+ name : deploy
136
+ command : |
137
+ set -e
138
+ # Log into cloud.gov
139
+ cf api api.fr.cloud.gov
140
+ cf login -u $CF_STAGING_SPACE_DEPLOYER_USERNAME -p $CF_STAGING_SPACE_DEPLOYER_PASSWORD -o gsa-opp-analytics -s analytics-staging
141
+ cat manifest.yml
142
+ cf push -f "./manifest.yml"
143
+ cf set-env analytics-reporter-api-staging API_DATA_GOV_SECRET "$API_SECRET"
144
+ cf restage analytics-reporter-api-staging
145
+ cf logout
146
+
147
+ main_deploy :
148
+ docker :
149
+ - image : cimg/node:16.19.1-browsers
150
+ environment :
151
+ POSTGRES_USER : postgres
152
+ NODE_ENV : test
153
+ - image : circleci/postgres:9.5-alpine
154
+ environment :
155
+ POSTGRES_DB : analytics-api-test
156
+ steps :
157
+ - checkout
158
+
159
+ - restore_cache :
160
+ keys :
161
+ - v1-dependencies-{{ checksum "package.json" }}
162
+ - v1-dependencies-
163
+
164
+ - run :
165
+ name : install dependencies
166
+ command : npm install
167
+
168
+ - save_cache :
169
+ paths :
170
+ - ./node_modules
171
+ key : v1-dependencies-{{ checksum "package.json" }}
172
+
173
+ - run :
174
+ name : run tests
175
+ command : npm test
176
+
177
+ - run :
178
+ name : Replace Data URL in manifest.yml file when deploying to production
179
+ command : |
180
+ sudo apt-get update
181
+ sudo apt-get install gettext
182
+ sed -i 's@name: analytics-reporter-api@name: analytics-reporter-api-production@g' manifest.yml
183
+ sed -i 's@- analytics-reporter-database@- analytics-reporter-database-production@g' manifest.yml
184
+ mv manifest.yml manifest.yml.src
185
+ envsubst < manifest.yml.src > manifest.yml
186
+
187
+ - run :
188
+ name : Run sed on entrypoint.sh when deploying to main
189
+ command : |
190
+ sed -i 's@NEW_RELIC_APP_NAME="analytics-reporter-api"@NEW_RELIC_APP_NAME="analytics-reporter-api-production"@g' entrypoint.sh
191
+
192
+ - run :
193
+ name : Delete Knexfile.js and drop sufffix on Knexfile.js.cloudgov
194
+ command : |
195
+ rm knexfile.js
196
+ mv knexfile.js.cloudgov knexfile.js
197
+ rm ./src/config.js
198
+ mv ./src/config.js.cloudgov ./src/config.js
199
+
200
+ - run :
201
+ name : Install CF CLI
202
+ command : |
203
+ sudo curl -v -L -o cf8-cli-installer_8.7.4_x86-64.deb 'https://packages.cloudfoundry.org/stable?release=debian64&version=8.7.4'
204
+ sudo dpkg -i cf8-cli-installer_8.7.4_x86-64.deb
205
+
206
+ - run :
207
+ name : deploy
208
+ command : |
209
+ set -e
210
+ # Log into cloud.gov
211
+ cf api api.fr.cloud.gov
212
+ cf login -u $CF_PRODUCTION_SPACE_DEPLOYER_USERNAME -p $CF_PRODUCTION_SPACE_DEPLOYER_PASSWORD -o gsa-opp-analytics -s analytics-prod
213
+ cat manifest.yml
214
+ cf push -f "./manifest.yml"
215
+ cf set-env analytics-reporter-api-production API_DATA_GOV_SECRET "$API_SECRET"
216
+ cf restage analytics-reporter-api-production
217
+ cf logout
218
+
219
+ workflows :
220
+ develop_workflow :
221
+ jobs :
222
+ - develop_deploy :
223
+ filters :
224
+ branches :
225
+ only :
226
+ - develop
227
+
228
+ staging :
229
+ jobs :
230
+ - staging_deploy :
231
+ filters :
232
+ branches :
233
+ only :
234
+ - stage
235
+
236
+ main_workflow :
237
+ jobs :
238
+ - main_deploy :
239
+ filters :
240
+ branches :
241
+ only :
242
+ - master
243
+
0 commit comments