@leverege/build-tools 1.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/.publishrc +15 -0
  2. package/CHANGELOG.md +30 -0
  3. package/LICENSE.md +3 -0
  4. package/README.md +32 -0
  5. package/lib/server/auditate/help.js +119 -0
  6. package/lib/server/auditate/index.js +23 -0
  7. package/lib/server/auditate/report.js +61 -0
  8. package/lib/server/circleate +549 -0
  9. package/lib/server/decrypt-secrets +91 -0
  10. package/lib/server/dnsify/CloudflareAPI.js +103 -0
  11. package/lib/server/dnsify/accounts.json.enc +0 -0
  12. package/lib/server/dnsify/index.js +92 -0
  13. package/lib/server/dockreate +338 -0
  14. package/lib/server/encrypt-secrets +31 -0
  15. package/lib/server/getfbcfg +23 -0
  16. package/lib/server/getjson +48 -0
  17. package/lib/server/helmdn +103 -0
  18. package/lib/server/helmify +289 -0
  19. package/lib/server/helmup +87 -0
  20. package/lib/server/overwhelm +303 -0
  21. package/lib/server/packleate/Packleator.js +269 -0
  22. package/lib/server/packleate/index.js +98 -0
  23. package/lib/server/packleate/logo-ansi.js +17 -0
  24. package/lib/server/pkgck +136 -0
  25. package/lib/server/pkglint/index.js +19 -0
  26. package/lib/server/test.json +4 -0
  27. package/lib/web/auditate/help.js +158 -0
  28. package/lib/web/auditate/index.js +27 -0
  29. package/lib/web/auditate/report.js +91 -0
  30. package/lib/web/dnsify/CloudflareAPI.js +250 -0
  31. package/lib/web/dnsify/index.js +147 -0
  32. package/lib/web/packleate/Packleator.js +645 -0
  33. package/lib/web/packleate/index.js +157 -0
  34. package/lib/web/packleate/logo-ansi.js +3 -0
  35. package/lib/web/pkglint/index.js +19 -0
  36. package/package.json +74 -0
  37. package/src/auditate/help.js +83 -0
  38. package/src/auditate/index.js +25 -0
  39. package/src/auditate/report.js +54 -0
  40. package/src/circleate +549 -0
  41. package/src/decrypt-secrets +91 -0
  42. package/src/dnsify/CloudflareAPI.js +99 -0
  43. package/src/dnsify/accounts.json.enc +0 -0
  44. package/src/dnsify/index.js +82 -0
  45. package/src/dockreate +338 -0
  46. package/src/encrypt-secrets +31 -0
  47. package/src/getfbcfg +23 -0
  48. package/src/getjson +48 -0
  49. package/src/helmdn +103 -0
  50. package/src/helmify +289 -0
  51. package/src/helmup +87 -0
  52. package/src/overwhelm +303 -0
  53. package/src/packleate/Packleator.js +271 -0
  54. package/src/packleate/index.js +86 -0
  55. package/src/packleate/logo-ansi.js +16 -0
  56. package/src/pkgck +136 -0
  57. package/src/pkglint/index.js +21 -0
  58. package/src/test.json +4 -0
package/src/circleate ADDED
@@ -0,0 +1,549 @@
1
+ #!/bin/bash
2
+ if [ -z "$1" ]; then
3
+ echo " Usage: repo type <ui/server/lib>"
4
+ exit 1
5
+ fi
6
+
7
+ if [ "$1" != "server" ] && [ "$1" != "ui" ] && [ "$1" != "lib" ]; then
8
+ echo " Only ui, server, or lib accepted currently"
9
+ exit 1
10
+ fi
11
+
12
+ repo_type=$1
13
+
14
+ check_circle_config(){
15
+ if [ -d "./.circleci" ];
16
+ then
17
+ printf "\nThere is an existing CircleCI config, do you want to override?\n\n"
18
+ printf "Hit return to continue or ^C to exit\n\n"; read ANS
19
+ rm -rf ./.circleci
20
+ fi
21
+
22
+ mkdir -p ./.circleci
23
+ }
24
+
25
+ strip_undefined() {
26
+ local result="$1"
27
+ [ "$1" == "undefined" ] && result=""
28
+ printf "$result"
29
+ }
30
+
31
+ create_circle_config(){
32
+ echo "Creating the CircleCI config file"
33
+ cd .circleci
34
+ if [ "$repo_type" = "server" ]; then
35
+ create_server_config
36
+ elif [ "$repo_type" = "lib" ]; then
37
+ create_lib_config
38
+ else
39
+ create_ui_config
40
+ fi
41
+ }
42
+
43
+ create_server_config(){
44
+ cat<<EOCIRCLE > config.yml
45
+ version: 2.1
46
+ orbs:
47
+ gcp-gcr: circleci/gcp-gcr@0.0.1
48
+ anchore: anchore/anchore-engine@1.2.0
49
+ executors:
50
+ default:
51
+ description: >
52
+ A debian-based machine executor.
53
+ machine: true
54
+ anchore_engine:
55
+ description: Machine runner with anchore engine default environment variables set.
56
+ parameters:
57
+ anchore_engine_version:
58
+ description: Version of anchore-engine container to run (recommended to keep default value)
59
+ type: string
60
+ default: "v0.3.2"
61
+ environment:
62
+ ANCHORE_CLI_USER: admin
63
+ ANCHORE_CLI_PASS: foobar
64
+ ANCHORE_CLI_SSL_VERIFY: 'n'
65
+ ANCHORE_VERSION: << parameters.anchore_engine_version >>
66
+ machine:
67
+ image: circleci/classic:201808-01
68
+ jobs:
69
+ docker-scan:
70
+ # runs anchore image scan for vulnerabilities
71
+ executor: anchore/anchore_engine
72
+ steps:
73
+ - attach_workspace:
74
+ at: ~/project
75
+ - run:
76
+ name: build container
77
+ command: 'docker build -t "\${CIRCLE_PROJECT_REPONAME}:ci" ~/project/docker/'
78
+ - anchore/analyze_local_image:
79
+ image_name: '\${CIRCLE_PROJECT_REPONAME}:ci'
80
+ timeout: '500'
81
+ policy_failure: true
82
+ - anchore/parse_reports
83
+
84
+ gcr:
85
+ # gcr build docker image and pushes to gcr
86
+ executor: default
87
+ steps:
88
+ - attach_workspace:
89
+ at: ~/project
90
+ - run: |
91
+ echo "export CONTAINER_NAME=\$(cat ~/project/container_name)" >> \$BASH_ENV
92
+ echo "export PACKAGE_VERSION=\$(cat ~/project/package_version)" >> \$BASH_ENV
93
+ - gcp-gcr/gcr-auth
94
+ - gcp-gcr/build-image:
95
+ image: \$CONTAINER_NAME
96
+ tag: \$PACKAGE_VERSION
97
+ path-to-dockerfile: docker
98
+ - gcp-gcr/push-image:
99
+ image: \$CONTAINER_NAME
100
+ tag: \$PACKAGE_VERSION
101
+
102
+ smoke-test:
103
+ # smoke test checks for license, security, and linting
104
+ docker:
105
+ - image: circleci/node:10.14.1
106
+ steps:
107
+ - checkout
108
+ - restore_cache:
109
+ key: dependency-cache-{{ checksum "package.json" }}
110
+ - run:
111
+ name: Setup @leverege Token
112
+ command: echo \${NPMRC} > ~/.npmrc
113
+ - run: npm install
114
+
115
+ - save_cache:
116
+ key: dependency-cache-{{ checksum "package.json" }}
117
+ paths:
118
+ - ./node_modules
119
+
120
+ - run:
121
+ name: Check for vulnerabilities
122
+ command: npm run vuln
123
+
124
+ - run:
125
+ name: Check for LICENSE and README files
126
+ command: npm run pkglint
127
+
128
+ - run:
129
+ name: Check for license violations (e.g. GPL)
130
+ command: |
131
+ npm install license-checker
132
+ npm run licenseCheck
133
+
134
+ - run:
135
+ name: Lint and save results
136
+ command: npm run lint-ci
137
+
138
+ - store_test_results:
139
+ path: reports
140
+
141
+ coverage:
142
+ # coverage runs tests, generates coverage, and saves docs
143
+ docker:
144
+ - image: circleci/node:10.14.1
145
+ # IF YOU NEED ANY OF THESE, UNCOMMENT TO USE
146
+ # - image: redis
147
+ # - image: circleci/mysql:5.7
148
+ # environment:
149
+ # MYSQL_USER: root
150
+ # MYSQL_ROOT_PASSWORD: root
151
+ # MYSQL_ALLOW_EMPTY_PASSWORD: true
152
+ # MYSQL_HOST: 127.0.0.1
153
+ # - image: nsqio/nsq
154
+ # command: /nsqlookupd -broadcast-address localhost:4160 -tcp-address 0.0.0.0:4160 -http-address 0.0.0.0:4161
155
+
156
+ # - image: nsqio/nsq
157
+ # command: >
158
+ # /nsqd
159
+ # -broadcast-address localhost:4150
160
+ # -tcp-address 0.0.0.0:4150
161
+ # -http-address 0.0.0.0:4151
162
+ # -lookupd-tcp-address localhost:4160
163
+
164
+ steps:
165
+ - checkout
166
+ - restore_cache:
167
+ key: dependency-cache-{{ checksum "package.json" }}
168
+
169
+ - run:
170
+ name: Setup @leverege Token
171
+ command: echo \${NPMRC} > ~/.npmrc
172
+
173
+ - run: npm install
174
+
175
+ # UNCOMMENT IF YOU NEED DECRYPTING SECRETS
176
+ # - run:
177
+ # name: Load secrets
178
+ # command: npm run decrypt
179
+
180
+ - run:
181
+ name: Run Tests and Generate Code Coverage
182
+ command: npm run coverage
183
+
184
+ - run:
185
+ name: Generate docs
186
+ command: |
187
+ npm install jsdoc
188
+ npm run docs
189
+
190
+ - store_artifacts:
191
+ path: coverage
192
+ prefix: coverage
193
+
194
+ - store_artifacts:
195
+ path: docs
196
+ prefix: docs
197
+
198
+ build:
199
+ # build should make dist image and prepare docker file
200
+ docker:
201
+ - image: circleci/node:10.14.1
202
+
203
+ steps:
204
+ - checkout
205
+ - restore_cache:
206
+ key: dependency-cache-{{ checksum "package.json" }}
207
+
208
+ - run:
209
+ name: Setup @leverege Token
210
+ command: |
211
+ echo \${NPMRC} > ~/.npmrc
212
+ echo \${NPMRC} > ~/.npmrc.ro
213
+
214
+ - run: npm install
215
+
216
+ - run:
217
+ name: Determine version number and container name
218
+ command: |
219
+ PACKAGE_VERSION=\$(node -p "require('./package.json').version")
220
+ container="\`node -p \"require('./package.json').leverege.container\"\`"
221
+ if [ "\$container" == "undefined" ];
222
+ then
223
+ container=\$CIRCLE_PROJECT_REPONAME
224
+ fi
225
+
226
+ echo v\${PACKAGE_VERSION} > package_version
227
+ echo "export PACKAGE_VERSION=v\${PACKAGE_VERSION}" >> \$BASH_ENV
228
+ echo \${container} > container_name
229
+ - run:
230
+ name: Create Dockerfile and build dist directory
231
+ command: npm run dockerize \$PACKAGE_VERSION
232
+
233
+ - persist_to_workspace:
234
+ root: ~/project
235
+ paths:
236
+ - dist/*
237
+ - docker/*
238
+ - package_version
239
+ - container_name
240
+ - package*json
241
+
242
+ workflows:
243
+ version: 2.1
244
+ test-build-deploy:
245
+ jobs:
246
+ - smoke-test:
247
+ context: npm
248
+ - coverage:
249
+ context: npm
250
+ requires:
251
+ - smoke-test
252
+ - build:
253
+ context: npm
254
+ filters:
255
+ branches:
256
+ only: master
257
+ requires:
258
+ - smoke-test
259
+ - docker-scan:
260
+ filters:
261
+ branches:
262
+ only: master
263
+ requires:
264
+ - smoke-test
265
+ - coverage
266
+ - build
267
+ - gcr:
268
+ context: google
269
+ filters:
270
+ branches:
271
+ only: master
272
+ requires:
273
+ - smoke-test
274
+ - build
275
+ - coverage
276
+ - docker-scan
277
+ EOCIRCLE
278
+ }
279
+
280
+ create_lib_config(){
281
+ cat<<EOCIRCLE > config.yml
282
+ version: 2.1
283
+ jobs:
284
+ smoke-test:
285
+ # smoke test checks for license, security, and linting
286
+ docker:
287
+ - image: circleci/node:10.14.1
288
+ steps:
289
+ - checkout
290
+ - restore_cache:
291
+ key: dependency-cache-{{ checksum "package.json" }}
292
+ - run:
293
+ name: Setup @leverege Token
294
+ command: echo \${NPMRC} > ~/.npmrc
295
+ - run: npm install
296
+
297
+ - save_cache:
298
+ key: dependency-cache-{{ checksum "package.json" }}
299
+ paths:
300
+ - ./node_modules
301
+
302
+ - run:
303
+ name: Check for vulnerabilities
304
+ command: npm run vuln
305
+
306
+ - run:
307
+ name: Check for LICENSE and README files
308
+ command: npm run pkglint
309
+
310
+ - run:
311
+ name: Check for license violations (e.g. GPL)
312
+ command: |
313
+ npm install license-checker
314
+ npm run licenseCheck
315
+
316
+ - run:
317
+ name: Lint and save results
318
+ command: npm run lint-ci
319
+
320
+ - store_test_results:
321
+ path: reports
322
+
323
+ coverage:
324
+ # coverage runs tests, generates coverage, and saves docs
325
+ docker:
326
+ - image: circleci/node:10.14.1
327
+ # IF YOU NEED ANY OF THESE, UNCOMMENT TO USE
328
+ # - image: redis
329
+ # - image: circleci/mysql:5.7
330
+ # environment:
331
+ # MYSQL_USER: root
332
+ # MYSQL_ROOT_PASSWORD: root
333
+ # MYSQL_ALLOW_EMPTY_PASSWORD: true
334
+ # MYSQL_HOST: 127.0.0.1
335
+ # - image: nsqio/nsq
336
+ # command: /nsqlookupd -broadcast-address localhost:4160 -tcp-address 0.0.0.0:4160 -http-address 0.0.0.0:4161
337
+
338
+ # - image: nsqio/nsq
339
+ # command: >
340
+ # /nsqd
341
+ # -broadcast-address localhost:4150
342
+ # -tcp-address 0.0.0.0:4150
343
+ # -http-address 0.0.0.0:4151
344
+ # -lookupd-tcp-address localhost:4160
345
+
346
+ steps:
347
+ - checkout
348
+ - restore_cache:
349
+ key: dependency-cache-{{ checksum "package.json" }}
350
+
351
+ - run:
352
+ name: Setup @leverege Token
353
+ command: echo \${NPMRC} > ~/.npmrc
354
+
355
+ - run: npm install
356
+
357
+ # UNCOMMENT IF YOU NEED DECRYPTING SECRETS
358
+ # - run:
359
+ # name: Load secrets
360
+ # command: npm run decrypt
361
+
362
+ - run:
363
+ name: Run Tests and Generate Code Coverage
364
+ command: npm run coverage
365
+
366
+ - run:
367
+ name: Generate docs
368
+ command: |
369
+ npm install jsdoc
370
+ npm run docs
371
+
372
+ - store_artifacts:
373
+ path: coverage
374
+ prefix: coverage
375
+
376
+ - store_artifacts:
377
+ path: docs
378
+ prefix: docs
379
+
380
+ # publish:
381
+ # # publish the package to npm registry - CURRENTLY DISABLED
382
+
383
+ workflows:
384
+ version: 2.1
385
+ test-build-deploy:
386
+ jobs:
387
+ - smoke-test:
388
+ context: npm
389
+ - coverage:
390
+ context: npm
391
+ requires:
392
+ - smoke-test
393
+ # - publish:
394
+ # context: npm
395
+ # filters:
396
+ # branches:
397
+ # only: master
398
+ # requires:
399
+ # - smoke-test
400
+ # - coverage
401
+ EOCIRCLE
402
+ }
403
+
404
+ create_ui_config(){
405
+ # Determine URLs per environment
406
+ echo "Please provide the dev site URL"
407
+ read DEV_URL
408
+
409
+ echo "Please provide the prod site URL"
410
+ read PROD_URL
411
+
412
+ # Determine GCP project
413
+ echo "Please provide the dev GCP project id"
414
+ read DEV_PROJECT
415
+
416
+ echo "Please provide the prod GCP project id"
417
+ read PROD_PROJECT
418
+
419
+ # Build circle config based on variables
420
+ cat<<EOCIRCLE > config.yml
421
+ version: 2.1
422
+ orbs:
423
+ gcp-gcr: circleci/gcp-cli@1.0.4
424
+ executors:
425
+ google:
426
+ description: The official Google docker container with gcloud SDK pre-installed
427
+ docker:
428
+ - image: google/cloud-sdk
429
+
430
+ jobs:
431
+ gcs-dev:
432
+ executor: google
433
+ steps:
434
+ - attach_workspace:
435
+ at: ~/project
436
+ # https://gist.github.com/DarrenN/8c6a5b969481725a4413
437
+ - run: |
438
+ echo "export PACKAGE_VERSION=v\$(grep -m1 version package.json | awk -F: '{ print \$2 }' | sed 's/[", ]//g')" >> \$BASH_ENV
439
+ - gcp-gcr/initialize
440
+ - run: |
441
+ gsutil mb gs://\$PACKAGE_VERSION.$DEV_URL
442
+ gsutil -m cp -r ./project/image/* gs://\$PACKAGE_VERSION.$DEV_URL
443
+ gsutil setmeta -h "Content-Encoding:gzip" gs://\$PACKAGE_VERSION.$DEV_URL/bundle.js
444
+ gsutil iam ch allUsers:objectViewer gs://$DEV_URL
445
+ - run: |
446
+ gsutil mb gs://$DEV_URL
447
+ gsutil -m rm gs://$DEV_URL/**
448
+ gsutil -m cp -r gs://\$PACKAGE_VERSION.$DEV_URL/* gs://$DEV_URL
449
+ gsutil setmeta -h "Content-Encoding:gzip" gs://$DEV_URL/bundle.js
450
+ gsutil iam ch allUsers:objectViewer gs://$DEV_URL
451
+
452
+ gcs-prod:
453
+ executor: google
454
+ steps:
455
+ - attach_workspace:
456
+ at: ~/project
457
+ # https://gist.github.com/DarrenN/8c6a5b969481725a4413
458
+ - run: |
459
+ echo "export PACKAGE_VERSION=v\$(grep -m1 version package.json | awk -F: '{ print \$2 }' | sed 's/[", ]//g')" >> \$BASH_ENV
460
+ - gcp-gcr/initialize
461
+ - run: |
462
+ gsutil mb gs://\$PACKAGE_VERSION.$PROD_URL
463
+ gsutil -m cp -r ./project/image/* gs://\$PACKAGE_VERSION.$PROD_URL
464
+ gsutil setmeta -h "Content-Encoding:gzip" gs://\$PACKAGE_VERSION.$PROD_URL/bundle.js
465
+ gsutil iam ch allUsers:objectViewer gs://$PROD_URL
466
+ - run: |
467
+ gsutil mb gs://$PROD_URL
468
+ gsutil -m rm gs://$PROD_URL/**
469
+ gsutil -m cp -r gs://\$PACKAGE_VERSION.$PROD_URL/* gs://$PROD_URL
470
+ gsutil setmeta -h "Content-Encoding:gzip" gs://$PROD_URL/bundle.js
471
+ gsutil iam ch allUsers:objectViewer gs://$PROD_URL
472
+
473
+ build:
474
+ docker:
475
+ - image: circleci/node:10.14.1
476
+ steps:
477
+ - checkout
478
+ - restore_cache:
479
+ key: dependency-cache-{{ checksum "package.json" }}
480
+
481
+ - run:
482
+ name: Setup @leverege Token
483
+ command: echo \${NPMRC} > ~/.npmrc
484
+
485
+ - run: npm install
486
+
487
+ - save_cache:
488
+ key: dependency-cache-{{ checksum "package.json" }}
489
+ paths:
490
+ - ./node_modules
491
+
492
+ - run:
493
+ name: Install license-checker
494
+ command: npm install license-checker
495
+
496
+ - run:
497
+ name: Check for license violations (e.g. GPL)
498
+ command: npm run licenseCheck
499
+
500
+ - run:
501
+ name: Bundle using webpack
502
+ command: |
503
+ npm run clean
504
+ npm run build
505
+ rm -fr ./image
506
+ mkdir ./image
507
+ cp -fr ./dist/* ./image/
508
+ gzip ./image/bundle.js
509
+ mv ./image/bundle.js.gz ./image/bundle.js
510
+
511
+ - persist_to_workspace:
512
+ root: ~/project
513
+ paths:
514
+ - image/*
515
+ - package.json
516
+
517
+ workflows:
518
+ version: 2.1
519
+ build-deploy-dev:
520
+ jobs:
521
+ - build:
522
+ context: npm
523
+ - gcs-dev:
524
+ context: $DEV_PROJECT
525
+ filters:
526
+ branches:
527
+ only: /release-.*/
528
+ requires:
529
+ - build
530
+ build-deploy-prod:
531
+ jobs:
532
+ - build:
533
+ context: npm
534
+ filters:
535
+ branches:
536
+ only: master
537
+ - gcs-prod:
538
+ context: $PROD_PROJECT
539
+ filters:
540
+ branches:
541
+ only: master
542
+ requires:
543
+ - build
544
+
545
+ EOCIRCLE
546
+ }
547
+
548
+ check_circle_config
549
+ create_circle_config
@@ -0,0 +1,91 @@
1
+ #!/bin/bash
2
+ display_usage() {
3
+ echo "This script decrypts files using Google KMS."
4
+ echo -e "\nInputs: .env.enc and secrets.tar.gz.enc (if it exists) \n"
5
+ }
6
+
7
+ install_gcloud() {
8
+ install () {
9
+ # Set sudo to work whether logged in as root user or non-root user
10
+ if [[ $EUID == 0 ]]; then export SUDO=""; else export SUDO="sudo"; fi
11
+
12
+ # Create an environment variable for the correct distribution
13
+ if [[ $(command -v lsb_release) == "" ]]; then
14
+ $SUDO apt-get update && $SUDO apt-get -y install lsb-release
15
+ export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)"
16
+ else
17
+ export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)"
18
+ fi
19
+
20
+ # Add the Google Cloud SDK distribution URI as a package source
21
+ echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | $SUDO tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
22
+
23
+ # Import the Google Cloud public key
24
+ if [[ $(command -v curl) == "" ]]; then
25
+ $SUDO apt-get update && $SUDO apt-get -y install curl
26
+ curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | $SUDO apt-key add -
27
+ else
28
+ curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | $SUDO apt-key add -
29
+ fi
30
+
31
+ # Update and install the Cloud SDK
32
+ $SUDO apt-get update && $SUDO apt-get -y install google-cloud-sdk
33
+ }
34
+
35
+ if grep 'docker\|lxc' /proc/1/cgroup; then
36
+ if [[ $(command -v gcloud) == "" ]]; then
37
+ install
38
+ else
39
+ echo "gcloud CLI is already installed."
40
+ fi
41
+ else
42
+ echo "----------------------------------------------------------------------------------------------------"
43
+ echo "this is a machine executor job, replacing default installation of gcloud CLI"
44
+ echo "----------------------------------------------------------------------------------------------------"
45
+ sudo rm -rf /opt/google-cloud-sdk
46
+ install
47
+ fi
48
+ }
49
+
50
+ initialize_gcloud() {
51
+ echo ${GCLOUD_SERVICE_KEY} > ${HOME}/gcloud-service-key.json
52
+
53
+ # Initialize gcloud CLI
54
+ gcloud auth activate-service-account --key-file=${HOME}/gcloud-service-key.json
55
+ gcloud --quiet config set project ${GOOGLE_PROJECT_ID}
56
+ gcloud --quiet config set compute/zone ${GOOGLE_COMPUTE_ZONE}
57
+ }
58
+
59
+ if [ "$1" == "-h" ]; then
60
+ display_usage
61
+ exit 1
62
+ fi
63
+
64
+ if [ "$CIRCLECI" == "true" ]; then
65
+ install_gcloud
66
+ initialize_gcloud
67
+ fi
68
+
69
+
70
+ if [ -f "secrets.tar.gz.enc" ]; then
71
+ # decrypt the secrets.tar.gz.enc
72
+ gcloud kms decrypt \
73
+ --project leverege-docker-images \
74
+ --key circle-ci \
75
+ --keyring build-tools \
76
+ --location us-east4 \
77
+ --plaintext-file secrets.tar.gz \
78
+ --ciphertext-file secrets.tar.gz.enc
79
+
80
+ # untar secrets.tar.gz
81
+ tar xvzf secrets.tar.gz
82
+ fi
83
+
84
+ # decrypt .env.enc file
85
+ gcloud kms decrypt \
86
+ --project leverege-docker-images \
87
+ --key circle-ci \
88
+ --keyring build-tools \
89
+ --location us-east4 \
90
+ --plaintext-file .env \
91
+ --ciphertext-file .env.enc