@catladder/pipeline 1.0.4 → 1.1.2
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/dist/build/base/constants.d.ts +7 -0
- package/dist/build/base/constants.js +11 -0
- package/dist/build/base/createBuildJob.d.ts +5 -0
- package/dist/build/base/createBuildJob.js +99 -0
- package/dist/build/docker.d.ts +5 -0
- package/dist/build/docker.js +95 -0
- package/dist/build/index.d.ts +12 -0
- package/dist/build/index.js +63 -0
- package/dist/build/node/buildJob.d.ts +3 -0
- package/dist/build/node/buildJob.js +100 -0
- package/dist/build/node/cache.d.ts +4 -0
- package/dist/build/node/cache.js +67 -0
- package/dist/build/node/constants.d.ts +6 -0
- package/dist/build/node/constants.js +10 -0
- package/dist/build/node/index.d.ts +5 -0
- package/dist/build/node/index.js +63 -0
- package/dist/build/node/meteor.d.ts +3 -0
- package/dist/build/node/meteor.js +103 -0
- package/dist/build/node/testJob.d.ts +3 -0
- package/dist/build/node/testJob.js +112 -0
- package/dist/build/node/yarn.d.ts +2 -0
- package/dist/build/node/yarn.js +12 -0
- package/dist/build/tests/storybook.test.d.ts +1 -0
- package/dist/build/tests/storybook.test.js +221 -0
- package/dist/build/types.d.ts +63 -0
- package/dist/build/types.js +16 -0
- package/dist/catladder-gitlab.d.ts +1 -0
- package/dist/catladder-gitlab.js +44 -0
- package/dist/config/configruedEnvs.d.ts +4 -0
- package/dist/config/configruedEnvs.js +86 -0
- package/dist/config/configruedEnvs.test.d.ts +1 -0
- package/dist/config/configruedEnvs.test.js +103 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.js +24 -0
- package/dist/config/readConfig.d.ts +2 -0
- package/dist/config/readConfig.js +47 -0
- package/dist/constants.d.ts +2 -0
- package/dist/constants.js +6 -0
- package/dist/context/index.d.ts +5 -0
- package/dist/context/index.js +211 -0
- package/dist/defaults/index.d.ts +2 -0
- package/dist/defaults/index.js +8 -0
- package/dist/deploy/base.d.ts +9 -0
- package/dist/deploy/base.js +94 -0
- package/dist/deploy/index.d.ts +11 -0
- package/dist/deploy/index.js +34 -0
- package/dist/deploy/kubernetes/cloudsql.d.ts +6 -0
- package/dist/deploy/kubernetes/cloudsql.js +16 -0
- package/dist/deploy/kubernetes/deployJob.d.ts +3 -0
- package/dist/deploy/kubernetes/deployJob.js +149 -0
- package/dist/deploy/kubernetes/index.d.ts +1 -0
- package/dist/deploy/kubernetes/index.js +22 -0
- package/dist/deploy/kubernetes/mongodb.d.ts +15 -0
- package/dist/deploy/kubernetes/mongodb.js +23 -0
- package/dist/deploy/types.d.ts +92 -0
- package/dist/deploy/types.js +16 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +36 -0
- package/dist/pipeline/createChildPipeline.d.ts +9 -0
- package/dist/pipeline/createChildPipeline.js +266 -0
- package/dist/pipeline/createChildPipeline.test.d.ts +1 -0
- package/dist/pipeline/createChildPipeline.test.js +199 -0
- package/dist/pipeline/createJobs.d.ts +3 -0
- package/dist/pipeline/createJobs.js +331 -0
- package/dist/pipeline/index.d.ts +2 -0
- package/dist/pipeline/index.js +24 -0
- package/dist/pipeline/yarnInfo.d.ts +2 -0
- package/dist/pipeline/yarnInfo.js +296 -0
- package/dist/rules/index.d.ts +3 -0
- package/dist/rules/index.js +27 -0
- package/dist/runner/index.d.ts +3 -0
- package/dist/runner/index.js +12 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/config.d.ts +73 -0
- package/dist/types/config.js +80 -0
- package/dist/types/context.d.ts +36 -0
- package/dist/types/context.js +3 -0
- package/dist/types/gitlab-types.d.ts +86 -0
- package/dist/types/gitlab-types.js +5 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.js +26 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +18 -0
- package/package.json +1 -1
- package/src/build/node/buildJob.ts +4 -0
- package/src/build/node/constants.ts +1 -1
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __assign = this && this.__assign || function () {
|
|
4
|
+
__assign = Object.assign || function (t) {
|
|
5
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
6
|
+
s = arguments[i];
|
|
7
|
+
|
|
8
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
return __assign.apply(this, arguments);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
var __read = this && this.__read || function (o, n) {
|
|
18
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
19
|
+
if (!m) return o;
|
|
20
|
+
var i = m.call(o),
|
|
21
|
+
r,
|
|
22
|
+
ar = [],
|
|
23
|
+
e;
|
|
24
|
+
|
|
25
|
+
try {
|
|
26
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
27
|
+
} catch (error) {
|
|
28
|
+
e = {
|
|
29
|
+
error: error
|
|
30
|
+
};
|
|
31
|
+
} finally {
|
|
32
|
+
try {
|
|
33
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
34
|
+
} finally {
|
|
35
|
+
if (e) throw e.error;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return ar;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
|
|
43
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
44
|
+
if (ar || !(i in from)) {
|
|
45
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
46
|
+
ar[i] = from[i];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
exports.__esModule = true;
|
|
53
|
+
exports.createNodeTestJobs = void 0;
|
|
54
|
+
|
|
55
|
+
var defaults_1 = require("../../defaults");
|
|
56
|
+
|
|
57
|
+
var utils_1 = require("../../utils");
|
|
58
|
+
|
|
59
|
+
var cache_1 = require("./cache");
|
|
60
|
+
|
|
61
|
+
var constants_1 = require("./constants");
|
|
62
|
+
|
|
63
|
+
var yarn_1 = require("./yarn");
|
|
64
|
+
|
|
65
|
+
var createNodeTestJobs = function (context) {
|
|
66
|
+
var _a, _b, _c, _d, _e, _f, _g, _h; // don't run tests after release
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
if (((_a = context.commitInfo) === null || _a === void 0 ? void 0 : _a.trigger) === "taggedRelease") {
|
|
70
|
+
return [];
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
var buildConfig = context.componentConfig.build;
|
|
74
|
+
var base = {
|
|
75
|
+
variables: __assign(__assign({
|
|
76
|
+
APP_PATH: context.componentConfig.dir
|
|
77
|
+
}, constants_1.NODE_RUNNER_BUILD_VARIABLES), (_b = buildConfig.extraVars) !== null && _b !== void 0 ? _b : {}),
|
|
78
|
+
stage: "test",
|
|
79
|
+
interruptible: true,
|
|
80
|
+
needs: [],
|
|
81
|
+
retry: defaults_1.BASE_RETRY
|
|
82
|
+
};
|
|
83
|
+
var yarnInstall = (0, yarn_1.getYarnInstall)(context);
|
|
84
|
+
var auditJob = buildConfig.audit !== false ? {
|
|
85
|
+
name: "🛡 audit",
|
|
86
|
+
envMode: "none",
|
|
87
|
+
job: __assign(__assign({}, base), {
|
|
88
|
+
cache: undefined,
|
|
89
|
+
script: __spreadArray(["cd ".concat(context.componentConfig.dir)], __read((_d = (0, utils_1.ensureArray)((_c = buildConfig.audit) === null || _c === void 0 ? void 0 : _c.command)) !== null && _d !== void 0 ? _d : ["yarn audit"]), false),
|
|
90
|
+
allow_failure: true
|
|
91
|
+
})
|
|
92
|
+
} : null;
|
|
93
|
+
var lintJob = buildConfig.lint !== false ? {
|
|
94
|
+
name: "👮 lint",
|
|
95
|
+
envMode: "none",
|
|
96
|
+
job: __assign(__assign({}, base), {
|
|
97
|
+
cache: (0, cache_1.getNodeCache)(context),
|
|
98
|
+
script: __spreadArray(__spreadArray(["cd ".concat(context.componentConfig.dir)], __read(yarnInstall), false), __read((_f = (0, utils_1.ensureArray)((_e = buildConfig.lint) === null || _e === void 0 ? void 0 : _e.command)) !== null && _f !== void 0 ? _f : ["yarn lint"]), false)
|
|
99
|
+
})
|
|
100
|
+
} : null;
|
|
101
|
+
var testJob = buildConfig.test !== false ? {
|
|
102
|
+
name: "🧪 test",
|
|
103
|
+
envMode: "none",
|
|
104
|
+
job: __assign(__assign({}, base), {
|
|
105
|
+
cache: (0, cache_1.getNodeCache)(context),
|
|
106
|
+
script: __spreadArray(__spreadArray(["cd ".concat(context.componentConfig.dir)], __read(yarnInstall), false), __read((_h = (0, utils_1.ensureArray)((_g = buildConfig.test) === null || _g === void 0 ? void 0 : _g.command)) !== null && _h !== void 0 ? _h : ["yarn test"]), false)
|
|
107
|
+
})
|
|
108
|
+
} : null;
|
|
109
|
+
return [auditJob, lintJob, testJob].filter(utils_1.notNil);
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
exports.createNodeTestJobs = createNodeTestJobs;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.getYarnInstall = void 0;
|
|
5
|
+
|
|
6
|
+
var getYarnInstall = function (context) {
|
|
7
|
+
var _a;
|
|
8
|
+
|
|
9
|
+
return ["if [ -f ./.nvmrc ]; then source /root/.nvm/nvm.sh && nvm install <<< .nvmrc; fi", ((_a = context.yarnInfo) === null || _a === void 0 ? void 0 : _a.isClassic) ? "yarn install --frozen-lockfile" : "yarn install --immutable"];
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
exports.getYarnInstall = getYarnInstall;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
4
|
+
function adopt(value) {
|
|
5
|
+
return value instanceof P ? value : new P(function (resolve) {
|
|
6
|
+
resolve(value);
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
+
function fulfilled(value) {
|
|
12
|
+
try {
|
|
13
|
+
step(generator.next(value));
|
|
14
|
+
} catch (e) {
|
|
15
|
+
reject(e);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function rejected(value) {
|
|
20
|
+
try {
|
|
21
|
+
step(generator["throw"](value));
|
|
22
|
+
} catch (e) {
|
|
23
|
+
reject(e);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function step(result) {
|
|
28
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
var __generator = this && this.__generator || function (thisArg, body) {
|
|
36
|
+
var _ = {
|
|
37
|
+
label: 0,
|
|
38
|
+
sent: function () {
|
|
39
|
+
if (t[0] & 1) throw t[1];
|
|
40
|
+
return t[1];
|
|
41
|
+
},
|
|
42
|
+
trys: [],
|
|
43
|
+
ops: []
|
|
44
|
+
},
|
|
45
|
+
f,
|
|
46
|
+
y,
|
|
47
|
+
t,
|
|
48
|
+
g;
|
|
49
|
+
return g = {
|
|
50
|
+
next: verb(0),
|
|
51
|
+
"throw": verb(1),
|
|
52
|
+
"return": verb(2)
|
|
53
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
|
|
54
|
+
return this;
|
|
55
|
+
}), g;
|
|
56
|
+
|
|
57
|
+
function verb(n) {
|
|
58
|
+
return function (v) {
|
|
59
|
+
return step([n, v]);
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function step(op) {
|
|
64
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
65
|
+
|
|
66
|
+
while (_) try {
|
|
67
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
68
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
69
|
+
|
|
70
|
+
switch (op[0]) {
|
|
71
|
+
case 0:
|
|
72
|
+
case 1:
|
|
73
|
+
t = op;
|
|
74
|
+
break;
|
|
75
|
+
|
|
76
|
+
case 4:
|
|
77
|
+
_.label++;
|
|
78
|
+
return {
|
|
79
|
+
value: op[1],
|
|
80
|
+
done: false
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
case 5:
|
|
84
|
+
_.label++;
|
|
85
|
+
y = op[1];
|
|
86
|
+
op = [0];
|
|
87
|
+
continue;
|
|
88
|
+
|
|
89
|
+
case 7:
|
|
90
|
+
op = _.ops.pop();
|
|
91
|
+
|
|
92
|
+
_.trys.pop();
|
|
93
|
+
|
|
94
|
+
continue;
|
|
95
|
+
|
|
96
|
+
default:
|
|
97
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
98
|
+
_ = 0;
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
103
|
+
_.label = op[1];
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
108
|
+
_.label = t[1];
|
|
109
|
+
t = op;
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (t && _.label < t[2]) {
|
|
114
|
+
_.label = t[2];
|
|
115
|
+
|
|
116
|
+
_.ops.push(op);
|
|
117
|
+
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (t[2]) _.ops.pop();
|
|
122
|
+
|
|
123
|
+
_.trys.pop();
|
|
124
|
+
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
op = body.call(thisArg, _);
|
|
129
|
+
} catch (e) {
|
|
130
|
+
op = [6, e];
|
|
131
|
+
y = 0;
|
|
132
|
+
} finally {
|
|
133
|
+
f = t = 0;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
if (op[0] & 5) throw op[1];
|
|
137
|
+
return {
|
|
138
|
+
value: op[0] ? op[1] : void 0,
|
|
139
|
+
done: true
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
var __rest = this && this.__rest || function (s, e) {
|
|
145
|
+
var t = {};
|
|
146
|
+
|
|
147
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
148
|
+
|
|
149
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
150
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
151
|
+
}
|
|
152
|
+
return t;
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
exports.__esModule = true;
|
|
156
|
+
|
|
157
|
+
var __1 = require("../../");
|
|
158
|
+
|
|
159
|
+
describe("storybook build", function () {
|
|
160
|
+
describe("creates two build jobs", function () {
|
|
161
|
+
var config = {
|
|
162
|
+
appName: "test",
|
|
163
|
+
customerName: "pan",
|
|
164
|
+
components: {
|
|
165
|
+
"my-app": {
|
|
166
|
+
dir: "myapp",
|
|
167
|
+
build: {
|
|
168
|
+
type: "storybook"
|
|
169
|
+
},
|
|
170
|
+
deploy: {
|
|
171
|
+
type: "kubernetes"
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
it("creates a pipeline for storybook that does not contain test stages", function () {
|
|
177
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
178
|
+
var _a, image, stages, workflow, jobs;
|
|
179
|
+
|
|
180
|
+
return __generator(this, function (_b) {
|
|
181
|
+
switch (_b.label) {
|
|
182
|
+
case 0:
|
|
183
|
+
return [4
|
|
184
|
+
/*yield*/
|
|
185
|
+
, (0, __1.createChildPipeline)("mainBranch", config)];
|
|
186
|
+
|
|
187
|
+
case 1:
|
|
188
|
+
_a = _b.sent(), image = _a.image, stages = _a.stages, workflow = _a.workflow, jobs = __rest(_a, ["image", "stages", "workflow"]);
|
|
189
|
+
expect(Object.keys(jobs)).toEqual(["dev my-app app-build", "dev my-app docker-build", "dev my-app deploy-to-kubernetes", "dev my-app kubernetes-stop"]);
|
|
190
|
+
return [2
|
|
191
|
+
/*return*/
|
|
192
|
+
];
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
it("runs build and renames folder", function () {
|
|
198
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
199
|
+
var _a, image, stages, workflow, jobs, buildJob;
|
|
200
|
+
|
|
201
|
+
return __generator(this, function (_b) {
|
|
202
|
+
switch (_b.label) {
|
|
203
|
+
case 0:
|
|
204
|
+
return [4
|
|
205
|
+
/*yield*/
|
|
206
|
+
, (0, __1.createChildPipeline)("mainBranch", config)];
|
|
207
|
+
|
|
208
|
+
case 1:
|
|
209
|
+
_a = _b.sent(), image = _a.image, stages = _a.stages, workflow = _a.workflow, jobs = __rest(_a, ["image", "stages", "workflow"]);
|
|
210
|
+
buildJob = jobs["dev my-app app-build"];
|
|
211
|
+
expect(buildJob.script).toContain("yarn storybook");
|
|
212
|
+
expect(buildJob.script).toContain("mv ./storybook-out /dist");
|
|
213
|
+
return [2
|
|
214
|
+
/*return*/
|
|
215
|
+
];
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
});
|
|
221
|
+
});
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export declare type BuildConfigBase = {
|
|
2
|
+
startCommand?: string;
|
|
3
|
+
extraVars?: Record<string, string>;
|
|
4
|
+
/**
|
|
5
|
+
* define the build command
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
buildCommand?: string | string[] | null;
|
|
9
|
+
/**
|
|
10
|
+
* customize docker build
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
docker?: {
|
|
14
|
+
additionsBegin?: string[];
|
|
15
|
+
additionsEnd?: string[];
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* customize lint, set false to disable
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
lint?: false | {
|
|
22
|
+
command?: string | string[];
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* customize test, set false to disable
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
test?: false | {
|
|
29
|
+
command?: string | string[];
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* customize audit, set false to disable
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
audit?: false | {
|
|
36
|
+
command?: string | string[];
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
export declare type BuildConfigNodeBase = BuildConfigBase;
|
|
40
|
+
export declare type BuildConfigNode = {
|
|
41
|
+
type: "node";
|
|
42
|
+
} & BuildConfigNodeBase;
|
|
43
|
+
export declare type BuildConfigNodeStatic = BuildConfigNodeBase & {
|
|
44
|
+
type: "node-static";
|
|
45
|
+
startCommand?: never;
|
|
46
|
+
};
|
|
47
|
+
export declare type BuildConfigMeteor = BuildConfigNodeBase & {
|
|
48
|
+
type: "meteor";
|
|
49
|
+
};
|
|
50
|
+
export declare type BuildConfigStorybook = BuildConfigNodeBase & {
|
|
51
|
+
type: "storybook";
|
|
52
|
+
startCommand?: never;
|
|
53
|
+
};
|
|
54
|
+
export declare type BuildConfig = BuildConfigNode | BuildConfigNodeStatic | BuildConfigStorybook | BuildConfigMeteor;
|
|
55
|
+
export declare const isOfBuildType: <T extends ("node" | "node-static" | "meteor" | "storybook")[]>(t: BuildConfig, ...types: T) => t is Extract<BuildConfigNode, {
|
|
56
|
+
type: T[number];
|
|
57
|
+
}> | Extract<BuildConfigNodeStatic, {
|
|
58
|
+
type: T[number];
|
|
59
|
+
}> | Extract<BuildConfigMeteor, {
|
|
60
|
+
type: T[number];
|
|
61
|
+
}> | Extract<BuildConfigStorybook, {
|
|
62
|
+
type: T[number];
|
|
63
|
+
}>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.isOfBuildType = void 0;
|
|
5
|
+
|
|
6
|
+
var isOfBuildType = function (t) {
|
|
7
|
+
var types = [];
|
|
8
|
+
|
|
9
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
10
|
+
types[_i - 1] = arguments[_i];
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
return types.includes(t.type);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
exports.isOfBuildType = isOfBuildType;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
|
|
5
|
+
var fs_1 = require("fs");
|
|
6
|
+
|
|
7
|
+
var config_1 = require("./config");
|
|
8
|
+
|
|
9
|
+
var constants_1 = require("./constants");
|
|
10
|
+
|
|
11
|
+
var pipeline_1 = require("./pipeline");
|
|
12
|
+
|
|
13
|
+
var _a = process.env,
|
|
14
|
+
CI_MERGE_REQUEST_ID = _a.CI_MERGE_REQUEST_ID,
|
|
15
|
+
CI_COMMIT_TAG = _a.CI_COMMIT_TAG,
|
|
16
|
+
CI_COMMIT_BRANCH = _a.CI_COMMIT_BRANCH,
|
|
17
|
+
CI_DEFAULT_BRANCH = _a.CI_DEFAULT_BRANCH;
|
|
18
|
+
var isDefaultBranch = CI_COMMIT_BRANCH == CI_DEFAULT_BRANCH;
|
|
19
|
+
var isHotfixBranch = false; // TODO: $CI_COMMIT_BRANCH =~ /^[0-9]+\.([0-9]+|x)\.x$/
|
|
20
|
+
|
|
21
|
+
var isMergeRequest = Boolean(CI_MERGE_REQUEST_ID);
|
|
22
|
+
var isTaggedRelease = Boolean(CI_COMMIT_TAG);
|
|
23
|
+
console.info("catladder version ".concat(constants_1.PIPELINE_IMAGE_TAG));
|
|
24
|
+
var trigger = isMergeRequest || isHotfixBranch ? "mr" : isDefaultBranch ? "mainBranch" : isTaggedRelease ? "taggedRelease" : null;
|
|
25
|
+
|
|
26
|
+
if (trigger) {
|
|
27
|
+
var config = (0, config_1.readConfigSync)();
|
|
28
|
+
|
|
29
|
+
if (!config) {
|
|
30
|
+
throw new Error("no catladder config found");
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
(0, pipeline_1.createChildPipeline)(trigger, config).then(function (mainPipeline) {
|
|
34
|
+
(0, fs_1.writeFileSync)("__pipeline.yml", JSON.stringify(mainPipeline, null, 2), {
|
|
35
|
+
encoding: "utf-8"
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
} else {
|
|
39
|
+
throw new Error("no matching trigger: " + JSON.stringify({
|
|
40
|
+
isMergeRequest: isMergeRequest,
|
|
41
|
+
isDefaultBranch: isDefaultBranch,
|
|
42
|
+
isTaggedRelease: isTaggedRelease
|
|
43
|
+
}, null, 2));
|
|
44
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Config, PipelineTrigger } from "../types";
|
|
2
|
+
export declare const getAllEnvs: (config: Config, componentName: string) => string[];
|
|
3
|
+
export declare const getAllEnvsInAllComponents: (config: Config) => string[];
|
|
4
|
+
export declare const getAllEnvsByTrigger: (config: Config, componentName: string, trigger: PipelineTrigger) => string[];
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __read = this && this.__read || function (o, n) {
|
|
4
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
5
|
+
if (!m) return o;
|
|
6
|
+
var i = m.call(o),
|
|
7
|
+
r,
|
|
8
|
+
ar = [],
|
|
9
|
+
e;
|
|
10
|
+
|
|
11
|
+
try {
|
|
12
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
13
|
+
} catch (error) {
|
|
14
|
+
e = {
|
|
15
|
+
error: error
|
|
16
|
+
};
|
|
17
|
+
} finally {
|
|
18
|
+
try {
|
|
19
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
20
|
+
} finally {
|
|
21
|
+
if (e) throw e.error;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return ar;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
|
|
29
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
30
|
+
if (ar || !(i in from)) {
|
|
31
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
32
|
+
ar[i] = from[i];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
exports.__esModule = true;
|
|
39
|
+
exports.getAllEnvsByTrigger = exports.getAllEnvsInAllComponents = exports.getAllEnvs = void 0;
|
|
40
|
+
|
|
41
|
+
var types_1 = require("../types");
|
|
42
|
+
|
|
43
|
+
var getConfiguredAndDefaultEnvs = function (config, componentName, envTypes) {
|
|
44
|
+
var _a, _b;
|
|
45
|
+
|
|
46
|
+
var configuredEnvs = (_a = config.components[componentName].env) !== null && _a !== void 0 ? _a : {}; // the default envs have the same name as the env types
|
|
47
|
+
// these can be disabled with settimg them to `false`
|
|
48
|
+
// this is the list of all not disabled envs. These are always returned
|
|
49
|
+
|
|
50
|
+
var enabledDefaultEnvs = envTypes.filter(function (e) {
|
|
51
|
+
return configuredEnvs[e] !== false;
|
|
52
|
+
});
|
|
53
|
+
var configuredCustomEnvs = Object.entries((_b = config.components[componentName].env) !== null && _b !== void 0 ? _b : {}).filter(function (_a) {
|
|
54
|
+
var _b = __read(_a, 2),
|
|
55
|
+
config = _b[1];
|
|
56
|
+
|
|
57
|
+
return config && "type" in config && config.type && envTypes.includes(config.type);
|
|
58
|
+
}).map(function (_a) {
|
|
59
|
+
var _b = __read(_a, 1),
|
|
60
|
+
envName = _b[0];
|
|
61
|
+
|
|
62
|
+
return envName;
|
|
63
|
+
});
|
|
64
|
+
return __spreadArray([], __read(new Set(__spreadArray(__spreadArray([], __read(enabledDefaultEnvs), false), __read(configuredCustomEnvs), false))), false);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
var getAllEnvs = function (config, componentName) {
|
|
68
|
+
return getConfiguredAndDefaultEnvs(config, componentName, types_1.DEFAULT_ENV_TYPES);
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
exports.getAllEnvs = getAllEnvs;
|
|
72
|
+
|
|
73
|
+
var getAllEnvsInAllComponents = function (config) {
|
|
74
|
+
return __spreadArray([], __read(new Set(Object.keys(config.components).flatMap(function (c) {
|
|
75
|
+
return (0, exports.getAllEnvs)(config, c);
|
|
76
|
+
}))), false);
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
exports.getAllEnvsInAllComponents = getAllEnvsInAllComponents;
|
|
80
|
+
|
|
81
|
+
var getAllEnvsByTrigger = function (config, componentName, trigger) {
|
|
82
|
+
var envTypesByTrigger = (0, types_1.getEnvTypesByTrigger)(trigger);
|
|
83
|
+
return getConfiguredAndDefaultEnvs(config, componentName, envTypesByTrigger);
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
exports.getAllEnvsByTrigger = getAllEnvsByTrigger;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
|
|
5
|
+
var _1 = require(".");
|
|
6
|
+
|
|
7
|
+
describe("getAllEnvsByTrigger", function () {
|
|
8
|
+
var SIMPLE_CONFIG = {
|
|
9
|
+
appName: "my-app",
|
|
10
|
+
customerName: "pan",
|
|
11
|
+
components: {
|
|
12
|
+
app1: {
|
|
13
|
+
dir: "dir1",
|
|
14
|
+
build: {
|
|
15
|
+
type: "node"
|
|
16
|
+
},
|
|
17
|
+
deploy: {
|
|
18
|
+
type: "kubernetes"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
app2: {
|
|
22
|
+
dir: "dir2",
|
|
23
|
+
build: {
|
|
24
|
+
type: "node"
|
|
25
|
+
},
|
|
26
|
+
deploy: {
|
|
27
|
+
type: "kubernetes"
|
|
28
|
+
},
|
|
29
|
+
env: {
|
|
30
|
+
dev2: {
|
|
31
|
+
type: "dev"
|
|
32
|
+
},
|
|
33
|
+
review2: {
|
|
34
|
+
type: "review"
|
|
35
|
+
},
|
|
36
|
+
stage2: {
|
|
37
|
+
type: "stage"
|
|
38
|
+
},
|
|
39
|
+
prod2: {
|
|
40
|
+
type: "prod"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
app3: {
|
|
45
|
+
dir: "dir2",
|
|
46
|
+
build: {
|
|
47
|
+
type: "node"
|
|
48
|
+
},
|
|
49
|
+
deploy: {
|
|
50
|
+
type: "kubernetes"
|
|
51
|
+
},
|
|
52
|
+
env: {
|
|
53
|
+
dev: false,
|
|
54
|
+
review: false,
|
|
55
|
+
stage: false,
|
|
56
|
+
prod: false
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
describe("mainBranch", function () {
|
|
62
|
+
it("always includes dev if not disabled", function () {
|
|
63
|
+
var envs = (0, _1.getAllEnvsByTrigger)(SIMPLE_CONFIG, "app1", "mainBranch");
|
|
64
|
+
expect(envs).toEqual(["dev"]);
|
|
65
|
+
});
|
|
66
|
+
it("returns additional dev environments", function () {
|
|
67
|
+
var envs = (0, _1.getAllEnvsByTrigger)(SIMPLE_CONFIG, "app2", "mainBranch");
|
|
68
|
+
expect(envs).toEqual(["dev", "dev2"]);
|
|
69
|
+
});
|
|
70
|
+
it("does not include disabled envs", function () {
|
|
71
|
+
var envs = (0, _1.getAllEnvsByTrigger)(SIMPLE_CONFIG, "app3", "mainBranch");
|
|
72
|
+
expect(envs).toEqual([]);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
describe("mr", function () {
|
|
76
|
+
it("always includes review if not disabled", function () {
|
|
77
|
+
var envs = (0, _1.getAllEnvsByTrigger)(SIMPLE_CONFIG, "app1", "mr");
|
|
78
|
+
expect(envs).toEqual(["review"]);
|
|
79
|
+
});
|
|
80
|
+
it("returns additional dev environments", function () {
|
|
81
|
+
var envs = (0, _1.getAllEnvsByTrigger)(SIMPLE_CONFIG, "app2", "mr");
|
|
82
|
+
expect(envs).toEqual(["review", "review2"]);
|
|
83
|
+
});
|
|
84
|
+
it("does not include disabled envs", function () {
|
|
85
|
+
var envs = (0, _1.getAllEnvsByTrigger)(SIMPLE_CONFIG, "app3", "mr");
|
|
86
|
+
expect(envs).toEqual([]);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
describe("taggedRelease", function () {
|
|
90
|
+
it("always includes review if not disabled", function () {
|
|
91
|
+
var envs = (0, _1.getAllEnvsByTrigger)(SIMPLE_CONFIG, "app1", "taggedRelease");
|
|
92
|
+
expect(envs).toEqual(["stage", "prod"]);
|
|
93
|
+
});
|
|
94
|
+
it("returns additional dev environments", function () {
|
|
95
|
+
var envs = (0, _1.getAllEnvsByTrigger)(SIMPLE_CONFIG, "app2", "taggedRelease");
|
|
96
|
+
expect(envs).toEqual(["stage", "prod", "stage2", "prod2"]);
|
|
97
|
+
});
|
|
98
|
+
it("does not include disabled envs", function () {
|
|
99
|
+
var envs = (0, _1.getAllEnvsByTrigger)(SIMPLE_CONFIG, "app3", "taggedRelease");
|
|
100
|
+
expect(envs).toEqual([]);
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
});
|