@leverege/build-tools 2.35.0-john.1 → 2.35.1
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.
- package/leverege-build-tools-2.21.13.tgz +0 -0
- package/lib/server/firebaseDeploy.js +5 -13
- package/lib/web/firebaseDeploy.js +5 -13
- package/package.json +3 -3
- package/src/bash-funcs +1 -1
- package/src/firebaseDeploy.mjs +5 -12
- package/src/helmdn +3 -5
- package/src/helmup +1 -1
- package/src/k8scale +4 -12
- package/src/circle-lib.yml +0 -150
- package/src/circle-srv.yml +0 -213
- package/src/helm-charts/geotile-server/.nohelm +0 -0
- package/src/helm-charts/geotile-server/gitignore +0 -1
- package/src/helm-charts/geotile-server/helmup.plugin +0 -6
|
Binary file
|
|
@@ -38,7 +38,11 @@ const INTERACTIVE_MODE = !TARGET;
|
|
|
38
38
|
let exited = false;
|
|
39
39
|
const SECRETS_DIR = 'secrets';
|
|
40
40
|
const EXIT_EVENTS = ['SIGINT', 'exit', 'uncaughException', 'unhandledRejection'];
|
|
41
|
-
const [firebaserc, firebaseJson,
|
|
41
|
+
const [firebaserc, firebaseJson, gitBranch] = await Promise.all([_zx.fs.exists(_zx.path.join(process.cwd(), '.firebaserc')), _zx.fs.exists(_zx.path.join(process.cwd(), 'firebase.json')), (0, _zx.$)`git rev-parse --abbrev-ref HEAD -C ${process.cwd()}`.then(({
|
|
42
|
+
stdout
|
|
43
|
+
}) => {
|
|
44
|
+
return stdout.split('\n')[0];
|
|
45
|
+
})]);
|
|
42
46
|
if (!firebaserc) {
|
|
43
47
|
console.log(_zx.chalk.red('No .firebaserc file found. Make sure that you are executing firebaseDeploy from within a firebase project directory.'));
|
|
44
48
|
}
|
|
@@ -51,18 +55,6 @@ if (!firebaserc || !firebaseJson) {
|
|
|
51
55
|
const firebasercContent = JSON.parse(await _zx.fs.readFile(_zx.path.join(process.cwd(), '.firebaserc'), {
|
|
52
56
|
encoding: 'utf-8'
|
|
53
57
|
}));
|
|
54
|
-
|
|
55
|
-
// If in a git repo, fetch the name of the git branch to use as a default
|
|
56
|
-
// name in case a deployment channel is needed. Examining this file directly
|
|
57
|
-
// is less cumbersome then running an actual git command to fetch the
|
|
58
|
-
// branch name
|
|
59
|
-
let gitBranch;
|
|
60
|
-
if (git) {
|
|
61
|
-
const gitContent = (await _zx.fs.readFile(_zx.path.join(process.cwd(), '.git/HEAD'), {
|
|
62
|
-
encoding: 'utf-8'
|
|
63
|
-
}))?.split('/');
|
|
64
|
-
gitBranch = gitContent[gitContent?.length - 1]?.trimEnd('\n');
|
|
65
|
-
}
|
|
66
58
|
let maxSiteIdLength = 0;
|
|
67
59
|
const targets = Object.entries(firebasercContent.targets).reduce((prev, [projectId, config]) => {
|
|
68
60
|
Object.entries(config.hosting).forEach(([siteId, aliases]) => {
|
|
@@ -38,7 +38,11 @@ const INTERACTIVE_MODE = !TARGET;
|
|
|
38
38
|
let exited = false;
|
|
39
39
|
const SECRETS_DIR = 'secrets';
|
|
40
40
|
const EXIT_EVENTS = ['SIGINT', 'exit', 'uncaughException', 'unhandledRejection'];
|
|
41
|
-
const [firebaserc, firebaseJson,
|
|
41
|
+
const [firebaserc, firebaseJson, gitBranch] = await Promise.all([_zx.fs.exists(_zx.path.join(process.cwd(), '.firebaserc')), _zx.fs.exists(_zx.path.join(process.cwd(), 'firebase.json')), (0, _zx.$)`git rev-parse --abbrev-ref HEAD -C ${process.cwd()}`.then(({
|
|
42
|
+
stdout
|
|
43
|
+
}) => {
|
|
44
|
+
return stdout.split('\n')[0];
|
|
45
|
+
})]);
|
|
42
46
|
if (!firebaserc) {
|
|
43
47
|
console.log(_zx.chalk.red('No .firebaserc file found. Make sure that you are executing firebaseDeploy from within a firebase project directory.'));
|
|
44
48
|
}
|
|
@@ -51,18 +55,6 @@ if (!firebaserc || !firebaseJson) {
|
|
|
51
55
|
const firebasercContent = JSON.parse(await _zx.fs.readFile(_zx.path.join(process.cwd(), '.firebaserc'), {
|
|
52
56
|
encoding: 'utf-8'
|
|
53
57
|
}));
|
|
54
|
-
|
|
55
|
-
// If in a git repo, fetch the name of the git branch to use as a default
|
|
56
|
-
// name in case a deployment channel is needed. Examining this file directly
|
|
57
|
-
// is less cumbersome then running an actual git command to fetch the
|
|
58
|
-
// branch name
|
|
59
|
-
let gitBranch;
|
|
60
|
-
if (git) {
|
|
61
|
-
const gitContent = (await _zx.fs.readFile(_zx.path.join(process.cwd(), '.git/HEAD'), {
|
|
62
|
-
encoding: 'utf-8'
|
|
63
|
-
}))?.split('/');
|
|
64
|
-
gitBranch = gitContent[gitContent?.length - 1]?.trimEnd('\n');
|
|
65
|
-
}
|
|
66
58
|
let maxSiteIdLength = 0;
|
|
67
59
|
const targets = Object.entries(firebasercContent.targets).reduce((prev, [projectId, config]) => {
|
|
68
60
|
Object.entries(config.hosting).forEach(([siteId, aliases]) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leverege/build-tools",
|
|
3
|
-
"version": "2.35.
|
|
3
|
+
"version": "2.35.1",
|
|
4
4
|
"description": "A collection of build / support tools for Leverege developers",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"repository": {
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"command-line-usage": "^6.1.3",
|
|
58
58
|
"deepmerge": "^4.3.1",
|
|
59
59
|
"dotenv": "^16.3.1",
|
|
60
|
-
"enquirer": "^2.
|
|
60
|
+
"enquirer": "^2.4.1",
|
|
61
61
|
"execa": "^5.1.1",
|
|
62
62
|
"get-bin-path": "^10.0.0",
|
|
63
63
|
"glob": "^8.1.0",
|
|
@@ -75,6 +75,6 @@
|
|
|
75
75
|
"@babel/core": "^7.22.9",
|
|
76
76
|
"@leverege/babel-preset-leverege-node": "^2.0.0",
|
|
77
77
|
"@leverege/eslint-config-leverege": "^3.0.1",
|
|
78
|
-
"npm": "^9.8.
|
|
78
|
+
"npm": "^9.8.1"
|
|
79
79
|
}
|
|
80
80
|
}
|
package/src/bash-funcs
CHANGED
|
@@ -137,7 +137,7 @@ function postToSlack() {
|
|
|
137
137
|
local dts="`date +\"%c\"`"
|
|
138
138
|
local slackURL="https://hooks.slack.com/services/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"
|
|
139
139
|
local channel="#dev-ops-helm"
|
|
140
|
-
local slackmsg="\n--- $running \`$GCP_PROJECT_ID\`
|
|
140
|
+
local slackmsg="\n--- $running by \`$USER\` in \`$GCP_PROJECT_ID\` @ $dts\n \`$toPost\`\n node `node --version` / `build-tools --version` / helm `helm version --short`\n"
|
|
141
141
|
|
|
142
142
|
curl -X POST -H 'Content-type: application/json' \
|
|
143
143
|
--data "{\"text\":\"$slackmsg\",\"channel\":\"$channel\"}" \
|
package/src/firebaseDeploy.mjs
CHANGED
|
@@ -42,11 +42,14 @@ const EXIT_EVENTS = [ 'SIGINT', 'exit', 'uncaughException', 'unhandledRejection'
|
|
|
42
42
|
const [
|
|
43
43
|
firebaserc,
|
|
44
44
|
firebaseJson,
|
|
45
|
-
|
|
45
|
+
gitBranch
|
|
46
46
|
] = await Promise.all( [
|
|
47
47
|
fs.exists( path.join( process.cwd(), '.firebaserc' ) ),
|
|
48
48
|
fs.exists( path.join( process.cwd(), 'firebase.json' ) ),
|
|
49
|
-
|
|
49
|
+
$`git rev-parse --abbrev-ref HEAD -C ${process.cwd()}`
|
|
50
|
+
.then( ( { stdout } ) => {
|
|
51
|
+
return stdout.split( '\n' )[0]
|
|
52
|
+
} )
|
|
50
53
|
] )
|
|
51
54
|
|
|
52
55
|
if ( !firebaserc ) {
|
|
@@ -63,16 +66,6 @@ if ( !firebaserc || !firebaseJson ) {
|
|
|
63
66
|
|
|
64
67
|
const firebasercContent = JSON.parse( await fs.readFile( path.join( process.cwd(), '.firebaserc' ), { encoding : 'utf-8' } ) )
|
|
65
68
|
|
|
66
|
-
// If in a git repo, fetch the name of the git branch to use as a default
|
|
67
|
-
// name in case a deployment channel is needed. Examining this file directly
|
|
68
|
-
// is less cumbersome then running an actual git command to fetch the
|
|
69
|
-
// branch name
|
|
70
|
-
let gitBranch
|
|
71
|
-
if ( git ) {
|
|
72
|
-
const gitContent = ( await fs.readFile( path.join( process.cwd(), '.git/HEAD' ), { encoding : 'utf-8' } ) )?.split( '/' )
|
|
73
|
-
gitBranch = gitContent[gitContent?.length - 1]?.trimEnd( '\n' )
|
|
74
|
-
}
|
|
75
|
-
|
|
76
69
|
let maxSiteIdLength = 0
|
|
77
70
|
|
|
78
71
|
const targets = Object
|
package/src/helmdn
CHANGED
|
@@ -94,7 +94,6 @@ function annihilateVelero() {
|
|
|
94
94
|
function helmDown() {
|
|
95
95
|
local namespace=${2:-default}
|
|
96
96
|
local helmdn="helm uninstall $1 -n $namespace"
|
|
97
|
-
printf "Gonna=>[$helmdn]\n"
|
|
98
97
|
eval $helmdn
|
|
99
98
|
postToSlack $helmdn
|
|
100
99
|
}
|
|
@@ -111,15 +110,15 @@ function doNuking() {
|
|
|
111
110
|
;;
|
|
112
111
|
|
|
113
112
|
"elastic"|"elasticsearch")
|
|
114
|
-
|
|
113
|
+
helmDown elasticsearch
|
|
115
114
|
;;
|
|
116
115
|
|
|
117
116
|
"estafette"|"preemptible-killer")
|
|
118
|
-
|
|
117
|
+
helmDown estafette-gke-preemptible-killer estafette
|
|
119
118
|
;;
|
|
120
119
|
|
|
121
120
|
"traefik")
|
|
122
|
-
|
|
121
|
+
helmDown traefik traefik
|
|
123
122
|
;;
|
|
124
123
|
|
|
125
124
|
"monitoring")
|
|
@@ -158,7 +157,6 @@ NOGRESS
|
|
|
158
157
|
|
|
159
158
|
*)
|
|
160
159
|
helmDown $SERVICE "default"
|
|
161
|
-
#helm -n default uninstall $SERVICE
|
|
162
160
|
esac
|
|
163
161
|
done
|
|
164
162
|
}
|
package/src/helmup
CHANGED
|
@@ -119,7 +119,7 @@ function bootstrapLocalSetup() {
|
|
|
119
119
|
then
|
|
120
120
|
mkdir $SERVICE
|
|
121
121
|
else
|
|
122
|
-
# If the service dir already exists but the
|
|
122
|
+
# If the service dir already exists but the helmup.plugin file is missing
|
|
123
123
|
# then this is most likely a legacy setup - for example, an older setup for
|
|
124
124
|
# elasticsearch that only had an es-values.yaml file. Note that we cannot
|
|
125
125
|
# get to this logic if the helmup.plugin file exists so no need to check
|
package/src/k8scale
CHANGED
|
@@ -1,22 +1,13 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
|
|
3
|
-
#
|
|
4
|
-
|
|
5
|
-
local color=
|
|
6
|
-
case "$1" in
|
|
7
|
-
'g') color="92m" ;; # green
|
|
8
|
-
'c') color="96m" ;; # lt blue
|
|
9
|
-
'y') color="93m" ;; # yellow
|
|
10
|
-
'r') color="91m" ;; # red
|
|
11
|
-
'toast') color="1;3;7;91;103;5m" ;;
|
|
12
|
-
esac
|
|
13
|
-
printf "\e[$color$2\e[0m"
|
|
14
|
-
}
|
|
3
|
+
# Load the standard helper functions
|
|
4
|
+
. `build-tools --bashfun`
|
|
15
5
|
|
|
16
6
|
GITTOP=`git rev-parse --show-toplevel` && cd $GITTOP
|
|
17
7
|
|
|
18
8
|
overwhelm
|
|
19
9
|
[ $? -ne 0 ] && printf "\n\n***Aborting helmup...\n\n" && exit 1
|
|
10
|
+
GCP_PROJECT_ID="$(getProjectIdFromK8sContext)"
|
|
20
11
|
|
|
21
12
|
REPLICAS=
|
|
22
13
|
DIRECTION=$1 && shift
|
|
@@ -40,5 +31,6 @@ do
|
|
|
40
31
|
kubectl scale --replicas=$REPLICAS deployment $SERVICE &>/dev/null
|
|
41
32
|
[ $? -eq 1 ] && RESULTS="`color r FAILURE`"
|
|
42
33
|
printf " $RESULTS => $SERVICE\n"
|
|
34
|
+
postToSlack "k8scale $DIRECTION $SERVICE"
|
|
43
35
|
done
|
|
44
36
|
printf "\n\n"
|
package/src/circle-lib.yml
DELETED
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
version: 2.1
|
|
2
|
-
jobs:
|
|
3
|
-
install:
|
|
4
|
-
docker:
|
|
5
|
-
- image: $CIRCLE_NODE_IMG
|
|
6
|
-
steps:
|
|
7
|
-
- checkout
|
|
8
|
-
- restore_cache:
|
|
9
|
-
keys:
|
|
10
|
-
- v1-npm-deps-{{ checksum "package-lock.json" }}
|
|
11
|
-
- v1-npm-deps-
|
|
12
|
-
|
|
13
|
-
- run:
|
|
14
|
-
name: Setup @leverege Token
|
|
15
|
-
command: echo \${NPMRC} > ~/.npmrc
|
|
16
|
-
|
|
17
|
-
- run: npm install
|
|
18
|
-
|
|
19
|
-
- save_cache:
|
|
20
|
-
key: v1-npm-deps-{{ checksum "package-lock.json" }}
|
|
21
|
-
paths:
|
|
22
|
-
- ./node_modules
|
|
23
|
-
|
|
24
|
-
- persist_to_workspace:
|
|
25
|
-
root: /home/circleci/project
|
|
26
|
-
paths:
|
|
27
|
-
- ./node_modules
|
|
28
|
-
|
|
29
|
-
security-check:
|
|
30
|
-
docker:
|
|
31
|
-
- image: $CIRCLE_NODE_IMG
|
|
32
|
-
steps:
|
|
33
|
-
- checkout
|
|
34
|
-
- attach_workspace:
|
|
35
|
-
at: ~/project
|
|
36
|
-
- run:
|
|
37
|
-
name: Check for vulnerabilities
|
|
38
|
-
command: npm audit --production --audit-level=moderate
|
|
39
|
-
|
|
40
|
-
license-check:
|
|
41
|
-
docker:
|
|
42
|
-
- image: $CIRCLE_NODE_IMG
|
|
43
|
-
steps:
|
|
44
|
-
- checkout
|
|
45
|
-
- attach_workspace:
|
|
46
|
-
at: ~/project
|
|
47
|
-
- run:
|
|
48
|
-
name: Check for LICENSE and README files
|
|
49
|
-
command: npm run pkglint
|
|
50
|
-
|
|
51
|
-
- run:
|
|
52
|
-
name: Check for license violations (e.g. GPL)
|
|
53
|
-
command: npx license-checker --production --summary --failOn GPL
|
|
54
|
-
|
|
55
|
-
lint:
|
|
56
|
-
docker:
|
|
57
|
-
- image: $CIRCLE_NODE_IMG
|
|
58
|
-
steps:
|
|
59
|
-
- checkout
|
|
60
|
-
- attach_workspace:
|
|
61
|
-
at: ~/project
|
|
62
|
-
- run:
|
|
63
|
-
name: Lint and save results
|
|
64
|
-
command: npm run lint-ci
|
|
65
|
-
|
|
66
|
-
- store_test_results:
|
|
67
|
-
path: reports
|
|
68
|
-
|
|
69
|
-
docs:
|
|
70
|
-
docker:
|
|
71
|
-
- image: $CIRCLE_NODE_IMG
|
|
72
|
-
steps:
|
|
73
|
-
- checkout
|
|
74
|
-
- attach_workspace:
|
|
75
|
-
at: ~/project
|
|
76
|
-
- run:
|
|
77
|
-
name: Generate docs
|
|
78
|
-
command: npx jsdoc -r src -R README.md -d docs
|
|
79
|
-
- store_artifacts:
|
|
80
|
-
path: docs
|
|
81
|
-
prefix: docs
|
|
82
|
-
|
|
83
|
-
coverage:
|
|
84
|
-
# coverage runs tests, generates coverage, and saves docs
|
|
85
|
-
environment:
|
|
86
|
-
TZ: 'America/New_York'
|
|
87
|
-
docker:
|
|
88
|
-
- image: $CIRCLE_NODE_IMG
|
|
89
|
-
# IF YOU NEED ANY OF THESE, UNCOMMENT TO USE
|
|
90
|
-
# - image: redis
|
|
91
|
-
# - image: circleci/mysql:5.7
|
|
92
|
-
# environment:
|
|
93
|
-
# MYSQL_USER: root
|
|
94
|
-
# MYSQL_ROOT_PASSWORD: root
|
|
95
|
-
# MYSQL_ALLOW_EMPTY_PASSWORD: true
|
|
96
|
-
# MYSQL_HOST: 127.0.0.1
|
|
97
|
-
# - image: nsqio/nsq
|
|
98
|
-
# command: /nsqlookupd -broadcast-address localhost:4160 -tcp-address 0.0.0.0:4160 -http-address 0.0.0.0:4161
|
|
99
|
-
|
|
100
|
-
# - image: nsqio/nsq
|
|
101
|
-
# command: >
|
|
102
|
-
# /nsqd
|
|
103
|
-
# -broadcast-address localhost:4150
|
|
104
|
-
# -tcp-address 0.0.0.0:4150
|
|
105
|
-
# -http-address 0.0.0.0:4151
|
|
106
|
-
# -lookupd-tcp-address localhost:4160
|
|
107
|
-
|
|
108
|
-
steps:
|
|
109
|
-
- checkout
|
|
110
|
-
- attach_workspace:
|
|
111
|
-
at: ~/project
|
|
112
|
-
|
|
113
|
-
# UNCOMMENT IF YOU NEED DECRYPTING SECRETS
|
|
114
|
-
# - run:
|
|
115
|
-
# name: Load secrets
|
|
116
|
-
# command: npm run decrypt
|
|
117
|
-
|
|
118
|
-
- run:
|
|
119
|
-
name: Run Tests and Generate Code Coverage
|
|
120
|
-
command: npm run coverage
|
|
121
|
-
|
|
122
|
-
- run:
|
|
123
|
-
name: Check if coverage meets at least 70%
|
|
124
|
-
command: npx c8 check-coverage --functions 70 --lines 70 --statements 70
|
|
125
|
-
|
|
126
|
-
- store_artifacts:
|
|
127
|
-
path: coverage
|
|
128
|
-
prefix: coverage
|
|
129
|
-
|
|
130
|
-
workflows:
|
|
131
|
-
version: 2.1
|
|
132
|
-
test-build-deploy:
|
|
133
|
-
jobs:
|
|
134
|
-
- install:
|
|
135
|
-
context: npm
|
|
136
|
-
- security-check:
|
|
137
|
-
requires:
|
|
138
|
-
- install
|
|
139
|
-
- license-check:
|
|
140
|
-
requires:
|
|
141
|
-
- install
|
|
142
|
-
- lint:
|
|
143
|
-
requires:
|
|
144
|
-
- install
|
|
145
|
-
- coverage:
|
|
146
|
-
requires:
|
|
147
|
-
- install
|
|
148
|
-
- docs:
|
|
149
|
-
requires:
|
|
150
|
-
- install
|
package/src/circle-srv.yml
DELETED
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
version: 2.1
|
|
2
|
-
#orbs:
|
|
3
|
-
# gcp-gcr: circleci/gcp-gcr@0.6.1
|
|
4
|
-
executors:
|
|
5
|
-
default:
|
|
6
|
-
description: >
|
|
7
|
-
A debian-based machine executor.
|
|
8
|
-
machine: true
|
|
9
|
-
jobs:
|
|
10
|
-
install:
|
|
11
|
-
docker:
|
|
12
|
-
- image: $CIRCLE_NODE_IMG
|
|
13
|
-
steps:
|
|
14
|
-
- checkout
|
|
15
|
-
- restore_cache:
|
|
16
|
-
keys:
|
|
17
|
-
- v1-npm-deps-{{ checksum "package-lock.json" }}
|
|
18
|
-
- v1-npm-deps-
|
|
19
|
-
|
|
20
|
-
- run:
|
|
21
|
-
name: Setup @leverege Token
|
|
22
|
-
command: echo \${NPMRC} > ~/.npmrc
|
|
23
|
-
|
|
24
|
-
- run: npm install
|
|
25
|
-
|
|
26
|
-
- save_cache:
|
|
27
|
-
key: v1-npm-deps-{{ checksum "package-lock.json" }}
|
|
28
|
-
paths:
|
|
29
|
-
- ./node_modules
|
|
30
|
-
|
|
31
|
-
- persist_to_workspace:
|
|
32
|
-
root: /home/circleci/project
|
|
33
|
-
paths:
|
|
34
|
-
- ./node_modules
|
|
35
|
-
|
|
36
|
-
security-check:
|
|
37
|
-
docker:
|
|
38
|
-
- image: $CIRCLE_NODE_IMG
|
|
39
|
-
steps:
|
|
40
|
-
- checkout
|
|
41
|
-
- attach_workspace:
|
|
42
|
-
at: ~/project
|
|
43
|
-
- run:
|
|
44
|
-
name: Check for vulnerabilities
|
|
45
|
-
command: npm audit --production --audit-level=moderate
|
|
46
|
-
|
|
47
|
-
license-check:
|
|
48
|
-
docker:
|
|
49
|
-
- image: $CIRCLE_NODE_IMG
|
|
50
|
-
steps:
|
|
51
|
-
- checkout
|
|
52
|
-
- attach_workspace:
|
|
53
|
-
at: ~/project
|
|
54
|
-
- run:
|
|
55
|
-
name: Check for LICENSE and README files
|
|
56
|
-
command: npm run pkglint
|
|
57
|
-
|
|
58
|
-
- run:
|
|
59
|
-
name: Check for license violations (e.g. GPL)
|
|
60
|
-
command: npx license-checker --production --summary --failOn GPL
|
|
61
|
-
|
|
62
|
-
lint:
|
|
63
|
-
docker:
|
|
64
|
-
- image: $CIRCLE_NODE_IMG
|
|
65
|
-
steps:
|
|
66
|
-
- checkout
|
|
67
|
-
- attach_workspace:
|
|
68
|
-
at: ~/project
|
|
69
|
-
- run:
|
|
70
|
-
name: Lint and save results
|
|
71
|
-
command: npm run lint-ci
|
|
72
|
-
|
|
73
|
-
- store_test_results:
|
|
74
|
-
path: reports
|
|
75
|
-
|
|
76
|
-
docs:
|
|
77
|
-
docker:
|
|
78
|
-
- image: $CIRCLE_NODE_IMG
|
|
79
|
-
steps:
|
|
80
|
-
- checkout
|
|
81
|
-
- attach_workspace:
|
|
82
|
-
at: ~/project
|
|
83
|
-
- run:
|
|
84
|
-
name: Generate docs
|
|
85
|
-
command: npx jsdoc -r src -R README.md -d docs
|
|
86
|
-
- store_artifacts:
|
|
87
|
-
path: docs
|
|
88
|
-
prefix: docs
|
|
89
|
-
|
|
90
|
-
coverage:
|
|
91
|
-
# coverage runs tests, generates coverage, and saves docs
|
|
92
|
-
environment:
|
|
93
|
-
TZ: 'America/New_York'
|
|
94
|
-
docker:
|
|
95
|
-
- image: $CIRCLE_NODE_IMG
|
|
96
|
-
# IF YOU NEED ANY OF THESE, UNCOMMENT TO USE
|
|
97
|
-
# - image: redis
|
|
98
|
-
# - image: circleci/mysql:5.7
|
|
99
|
-
# environment:
|
|
100
|
-
# MYSQL_USER: root
|
|
101
|
-
# MYSQL_ROOT_PASSWORD: root
|
|
102
|
-
# MYSQL_ALLOW_EMPTY_PASSWORD: true
|
|
103
|
-
# MYSQL_HOST: 127.0.0.1
|
|
104
|
-
# - image: nsqio/nsq
|
|
105
|
-
# command: /nsqlookupd -broadcast-address localhost:4160 -tcp-address 0.0.0.0:4160 -http-address 0.0.0.0:4161
|
|
106
|
-
|
|
107
|
-
# - image: nsqio/nsq
|
|
108
|
-
# command: >
|
|
109
|
-
# /nsqd
|
|
110
|
-
# -broadcast-address localhost:4150
|
|
111
|
-
# -tcp-address 0.0.0.0:4150
|
|
112
|
-
# -http-address 0.0.0.0:4151
|
|
113
|
-
# -lookupd-tcp-address localhost:4160
|
|
114
|
-
|
|
115
|
-
steps:
|
|
116
|
-
- checkout
|
|
117
|
-
- attach_workspace:
|
|
118
|
-
at: ~/project
|
|
119
|
-
|
|
120
|
-
# UNCOMMENT IF YOU NEED DECRYPTING SECRETS
|
|
121
|
-
# - run:
|
|
122
|
-
# name: Load secrets
|
|
123
|
-
# command: npm run decrypt
|
|
124
|
-
|
|
125
|
-
- run:
|
|
126
|
-
name: Run Tests and Generate Code Coverage
|
|
127
|
-
command: npm run coverage
|
|
128
|
-
|
|
129
|
-
- run:
|
|
130
|
-
name: Check if coverage meets at least 70%
|
|
131
|
-
command: npx c8 check-coverage --functions 70 --lines 70 --statements 70
|
|
132
|
-
|
|
133
|
-
- store_artifacts:
|
|
134
|
-
path: coverage
|
|
135
|
-
prefix: coverage
|
|
136
|
-
|
|
137
|
-
build:
|
|
138
|
-
# build should make dist image and prepare docker file
|
|
139
|
-
docker:
|
|
140
|
-
- image: $CIRCLE_NODE_IMG
|
|
141
|
-
|
|
142
|
-
steps:
|
|
143
|
-
- checkout
|
|
144
|
-
- attach_workspace:
|
|
145
|
-
at: ~/project
|
|
146
|
-
|
|
147
|
-
- run:
|
|
148
|
-
name: Setup @leverege Token
|
|
149
|
-
command: echo \${NPMRC} > ~/.npmrc.ro
|
|
150
|
-
|
|
151
|
-
- run:
|
|
152
|
-
name: Determine version number and container name
|
|
153
|
-
command: |
|
|
154
|
-
container="\`node -p \"require('./package.json').leverege.container\"\`"
|
|
155
|
-
if [ "\$container" == "undefined" ];
|
|
156
|
-
then
|
|
157
|
-
container=\$CIRCLE_PROJECT_REPONAME
|
|
158
|
-
fi
|
|
159
|
-
NODE_IMAGE="\`node -p \"require('./package.json').leverege.nodeimg\"\`"
|
|
160
|
-
|
|
161
|
-
echo \$(git describe --tags) > package_version
|
|
162
|
-
echo \${container} > container_name
|
|
163
|
-
echo \${NODE_IMAGE} > node_img
|
|
164
|
-
|
|
165
|
-
- run:
|
|
166
|
-
name: Create Dockerfile and build dist directory
|
|
167
|
-
command: mkdir -p docker && npm run dockerize \$(git describe --tags)
|
|
168
|
-
|
|
169
|
-
- persist_to_workspace:
|
|
170
|
-
root: ~/project
|
|
171
|
-
paths:
|
|
172
|
-
- docker/*
|
|
173
|
-
- package_version
|
|
174
|
-
- container_name
|
|
175
|
-
- node_img
|
|
176
|
-
|
|
177
|
-
workflows:
|
|
178
|
-
version: 2.1
|
|
179
|
-
test-build-deploy:
|
|
180
|
-
jobs:
|
|
181
|
-
- install:
|
|
182
|
-
context: npm
|
|
183
|
-
- security-check:
|
|
184
|
-
requires:
|
|
185
|
-
- install
|
|
186
|
-
- license-check:
|
|
187
|
-
requires:
|
|
188
|
-
- install
|
|
189
|
-
- lint:
|
|
190
|
-
requires:
|
|
191
|
-
- install
|
|
192
|
-
- coverage:
|
|
193
|
-
requires:
|
|
194
|
-
- install
|
|
195
|
-
- docs:
|
|
196
|
-
requires:
|
|
197
|
-
- install
|
|
198
|
-
- build:
|
|
199
|
-
context: npm
|
|
200
|
-
filters:
|
|
201
|
-
branches:
|
|
202
|
-
only:
|
|
203
|
-
- development
|
|
204
|
-
- /release-.*/
|
|
205
|
-
- master
|
|
206
|
-
requires:
|
|
207
|
-
- install
|
|
208
|
-
- security-check
|
|
209
|
-
- license-check
|
|
210
|
-
- lint
|
|
211
|
-
- coverage
|
|
212
|
-
- docs
|
|
213
|
-
|
|
File without changes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
geotile-local.yaml
|