@catladder/pipeline 0.0.0-fix-command-710f75f1 → 0.0.0-fix-error-sql-db-delete-a719775a
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/custom/buildJob.js +1 -0
- package/dist/build/docker.d.ts +4 -18
- package/dist/build/docker.js +15 -9
- package/dist/build/index.js +7 -1
- package/dist/build/rails/build.js +37 -16
- package/dist/build/rails/index.d.ts +2 -2
- package/dist/build/rails/test.js +1 -2
- package/dist/build/types.d.ts +36 -4
- package/dist/bundles/catladder-gitlab/index.js +543 -218
- package/dist/constants.js +1 -1
- package/dist/context/getEnvironment.js +1 -0
- package/dist/context/getEnvironmentContext.js +5 -3
- package/dist/context/getEnvironmentVariables.d.ts +5 -1
- package/dist/context/getEnvironmentVariables.js +7 -2
- package/dist/deploy/base.js +1 -1
- package/dist/deploy/cloudRun/index.js +14 -6
- package/dist/deploy/custom/deployJob.js +6 -3
- package/dist/deploy/index.d.ts +2 -1
- package/dist/deploy/kubernetes/additionalSecretKeys.d.ts +3 -1
- package/dist/deploy/kubernetes/additionalSecretKeys.js +5 -1
- package/dist/deploy/kubernetes/deployJob.js +4 -4
- package/dist/deploy/kubernetes/kubeValues.d.ts +1 -0
- package/dist/deploy/kubernetes/kubeValues.js +9 -6
- package/dist/deploy/kubernetes/processSecretsAsFiles.d.ts +1 -0
- package/dist/deploy/types/custom.d.ts +2 -1
- package/dist/deploy/types/googleCloudRun.d.ts +5 -1
- package/dist/deploy/types/kubernetes.d.ts +9 -0
- package/dist/pipeline/createAllJobs.d.ts +8 -0
- package/dist/pipeline/createAllJobs.js +164 -0
- package/dist/pipeline/createChildPipeline.js +24 -48
- package/dist/pipeline/createJobsForComponent.d.ts +3 -0
- package/dist/pipeline/{createJobs.js → createJobsForComponent.js} +8 -105
- package/dist/pipeline/gitlab/createGitlabJobs.d.ts +14 -0
- package/dist/pipeline/gitlab/createGitlabJobs.js +260 -0
- package/dist/pipeline/index.d.ts +1 -1
- package/dist/pipeline/index.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/config.d.ts +3 -3
- package/dist/types/context.d.ts +3 -1
- package/dist/types/environmentContext.d.ts +7 -0
- package/dist/types/gitlab-types.d.ts +5 -1
- package/dist/types/jobs.d.ts +9 -2
- package/dist/utils/gitlab.js +1 -1
- package/examples/__snapshots__/cloud-run-memory-limit.ts.snap +32 -32
- package/examples/__snapshots__/cloud-run-no-cpu-throttling.ts.snap +32 -32
- package/examples/__snapshots__/cloud-run-non-public.ts.snap +32 -32
- package/examples/__snapshots__/cloud-run-with-sql-reuse-db.ts.snap +3116 -0
- package/examples/__snapshots__/cloud-run-with-sql.ts.snap +64 -64
- package/examples/__snapshots__/custom-build-job.ts.snap +32 -32
- package/examples/__snapshots__/custom-deploy.ts.snap +1384 -0
- package/examples/__snapshots__/kubernetes-application-customization.ts.snap +2280 -0
- package/examples/__snapshots__/kubernetes-with-cloud-sql-legacy.ts.snap +2204 -0
- package/examples/__snapshots__/kubernetes-with-jobs.ts.snap +24 -24
- package/examples/__snapshots__/rails-k8s-with-worker.ts.snap +1911 -0
- package/examples/cloud-run-with-sql-reuse-db.ts +54 -0
- package/examples/custom-deploy.ts +25 -0
- package/examples/kubernetes-application-customization.ts +57 -0
- package/examples/kubernetes-with-cloud-sql-legacy.ts +33 -0
- package/examples/rails-k8s-with-worker.ts +95 -0
- package/package.json +1 -1
- package/src/build/custom/buildJob.ts +1 -0
- package/src/build/docker.ts +13 -6
- package/src/build/index.ts +7 -1
- package/src/build/node/cache.ts +2 -2
- package/src/build/rails/build.ts +20 -10
- package/src/build/rails/index.ts +2 -2
- package/src/build/rails/test.ts +43 -39
- package/src/build/types.ts +40 -5
- package/src/config/configruedEnvs.ts +2 -8
- package/src/context/getEnvironment.ts +1 -0
- package/src/context/getEnvironmentContext.ts +6 -6
- package/src/context/getEnvironmentVariables.ts +9 -4
- package/src/deploy/base.ts +1 -1
- package/src/deploy/cloudRun/deployJob.ts +1 -1
- package/src/deploy/cloudRun/index.ts +12 -4
- package/src/deploy/custom/deployJob.ts +9 -1
- package/src/deploy/index.ts +4 -1
- package/src/deploy/kubernetes/additionalSecretKeys.ts +1 -1
- package/src/deploy/kubernetes/deployJob.ts +2 -1
- package/src/deploy/kubernetes/kubeValues.ts +7 -5
- package/src/deploy/types/custom.ts +2 -1
- package/src/deploy/types/googleCloudRun.ts +6 -1
- package/src/deploy/types/kubernetes.ts +11 -1
- package/src/pipeline/createAllJobs.ts +38 -0
- package/src/pipeline/createChildPipeline.ts +6 -22
- package/src/pipeline/createJobsForComponent.ts +64 -0
- package/src/pipeline/gitlab/createGitlabJobs.ts +149 -0
- package/src/pipeline/index.ts +1 -1
- package/src/types/context.ts +3 -1
- package/src/types/environmentContext.ts +7 -0
- package/src/types/gitlab-types.ts +10 -3
- package/src/types/jobs.ts +11 -2
- package/src/utils/gitlab.ts +1 -1
- package/dist/pipeline/createJobs.d.ts +0 -3
- package/dist/pipeline/gitlab/makeGitlabJob.d.ts +0 -10
- package/dist/pipeline/gitlab/makeGitlabJob.js +0 -44
- package/src/pipeline/createJobs.ts +0 -199
- package/src/pipeline/gitlab/makeGitlabJob.ts +0 -23
|
@@ -165,14 +165,12 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
|
|
|
165
165
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
166
166
|
};
|
|
167
167
|
exports.__esModule = true;
|
|
168
|
-
exports.
|
|
168
|
+
exports.createJobsForComponent = void 0;
|
|
169
169
|
var lodash_1 = require("lodash");
|
|
170
170
|
var build_1 = require("../build");
|
|
171
171
|
var context_1 = require("../context");
|
|
172
172
|
var deploy_1 = require("../deploy");
|
|
173
|
-
var utils_1 = require("../utils");
|
|
174
173
|
var getCommitInfo_1 = require("./commitInfo/getCommitInfo");
|
|
175
|
-
var makeGitlabJob_1 = require("./gitlab/makeGitlabJob");
|
|
176
174
|
var packageManager_1 = require("./packageManager");
|
|
177
175
|
var injectDefaultVarsInCustomJobs = function (context, jobs) {
|
|
178
176
|
return jobs.map(function (_a) {
|
|
@@ -200,76 +198,9 @@ var createRawJobs = function (context) {
|
|
|
200
198
|
var customJobs = getCustomJobs(context);
|
|
201
199
|
return __spreadArray(__spreadArray(__spreadArray([], __read(buildJobs), false), __read(deployJobs), false), __read(customJobs), false);
|
|
202
200
|
};
|
|
203
|
-
var
|
|
204
|
-
if (env) {
|
|
205
|
-
return "".concat(componentName, " ").concat(name, " | ").concat(env, " ");
|
|
206
|
-
}
|
|
207
|
-
return "".concat(componentName, " ").concat(name);
|
|
208
|
-
};
|
|
209
|
-
var getFullReferencedJobName = function (referencedJobName, componentName, env, allRawJobs) {
|
|
210
|
-
var referencedJob = allRawJobs.find(function (j) {
|
|
211
|
-
return j.name === referencedJobName;
|
|
212
|
-
});
|
|
213
|
-
if (!referencedJob) {
|
|
214
|
-
throw new Error("unknown job referenced: " + referencedJobName);
|
|
215
|
-
}
|
|
216
|
-
var envToSet = referencedJob.envMode !== "none" ? env : null;
|
|
217
|
-
return getFullJobName(referencedJobName, componentName, envToSet);
|
|
218
|
-
};
|
|
219
|
-
// replaces references to other jobs with the full name
|
|
220
|
-
// the full name contains the componentname and the env name (if any)
|
|
221
|
-
var replaceReferences = function (job, componentName, env, allRawJobs) {
|
|
222
|
-
var _a, _b, _c;
|
|
223
|
-
var stage = job.envMode === "stagePerEnv" ? "".concat(job.stage, " ").concat(env) : job.stage;
|
|
224
|
-
var needsFromNeeds = (_a = job.needs) === null || _a === void 0 ? void 0 : _a.map(function (n) {
|
|
225
|
-
return (0, lodash_1.isObject)(n) ? {
|
|
226
|
-
job: getFullReferencedJobName(n.job, componentName, env, allRawJobs),
|
|
227
|
-
artifacts: n.artifacts
|
|
228
|
-
} : getFullReferencedJobName(n, componentName, env, allRawJobs);
|
|
229
|
-
});
|
|
230
|
-
var needsFromOtherComponents = (_b = job.needsOtherComponent) === null || _b === void 0 ? void 0 : _b.map(function (other) {
|
|
231
|
-
return {
|
|
232
|
-
artifacts: other.artifacts,
|
|
233
|
-
job: getFullReferencedJobName(other.job, other.componentName, env, allRawJobs)
|
|
234
|
-
};
|
|
235
|
-
});
|
|
236
|
-
var needs = __spreadArray(__spreadArray([], __read(needsFromNeeds !== null && needsFromNeeds !== void 0 ? needsFromNeeds : []), false), __read(needsFromOtherComponents !== null && needsFromOtherComponents !== void 0 ? needsFromOtherComponents : []), false);
|
|
237
|
-
return __assign(__assign({}, job), {
|
|
238
|
-
stage: stage,
|
|
239
|
-
needs: needs,
|
|
240
|
-
environment: ((_c = job.environment) === null || _c === void 0 ? void 0 : _c.on_stop) ? __assign(__assign({}, job.environment), {
|
|
241
|
-
on_stop: getFullReferencedJobName(job.environment.on_stop, componentName, env, allRawJobs)
|
|
242
|
-
}) : job.environment
|
|
243
|
-
});
|
|
244
|
-
};
|
|
245
|
-
// this can be removed once https://gitlab.com/gitlab-org/gitlab/-/issues/220758 is resolved
|
|
246
|
-
var addStageNeeds = function (jobs) {
|
|
247
|
-
// when a job defines needsStages, we add these as needs
|
|
248
|
-
return jobs.map(function (job) {
|
|
249
|
-
var _a;
|
|
250
|
-
if (!job.needsStages || job.needsStages.length === 0) {
|
|
251
|
-
return job;
|
|
252
|
-
}
|
|
253
|
-
var neededJobs = jobs.map(function (j) {
|
|
254
|
-
var _a, _b;
|
|
255
|
-
var neededStage = (_a = job.needsStages) === null || _a === void 0 ? void 0 : _a.find(function (s) {
|
|
256
|
-
return j.stage === s.stage;
|
|
257
|
-
});
|
|
258
|
-
if (neededStage) {
|
|
259
|
-
return {
|
|
260
|
-
job: j.name,
|
|
261
|
-
artifacts: (_b = neededStage.artifacts) !== null && _b !== void 0 ? _b : false
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
}).filter(utils_1.notNil);
|
|
265
|
-
return __assign(__assign({}, job), {
|
|
266
|
-
needs: __spreadArray(__spreadArray([], __read((_a = job.needs) !== null && _a !== void 0 ? _a : []), false), __read(neededJobs), false)
|
|
267
|
-
});
|
|
268
|
-
});
|
|
269
|
-
};
|
|
270
|
-
var createJobs = function (type, envs, config, componentName, trigger) {
|
|
201
|
+
var createJobsForComponent = function (config, componentName, env, trigger) {
|
|
271
202
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
272
|
-
var commitInfo, _a, packageManagerInfo;
|
|
203
|
+
var commitInfo, _a, packageManagerInfo, context;
|
|
273
204
|
return __generator(this, function (_b) {
|
|
274
205
|
switch (_b.label) {
|
|
275
206
|
case 0:
|
|
@@ -282,40 +213,12 @@ var createJobs = function (type, envs, config, componentName, trigger) {
|
|
|
282
213
|
return [4 /*yield*/, (0, packageManager_1.getPackageManagerInfo)(config, componentName)];
|
|
283
214
|
case 2:
|
|
284
215
|
packageManagerInfo = _b.sent();
|
|
285
|
-
return [
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
switch (_f.label) {
|
|
290
|
-
case 0:
|
|
291
|
-
return [4 /*yield*/, (0, context_1.createContext)(config, componentName, env, commitInfo, packageManagerInfo)];
|
|
292
|
-
case 1:
|
|
293
|
-
context = _f.sent();
|
|
294
|
-
jobs = addStageNeeds(createRawJobs(context));
|
|
295
|
-
_a = [{}];
|
|
296
|
-
return [4 /*yield*/, acc];
|
|
297
|
-
case 2:
|
|
298
|
-
_b = [__assign.apply(void 0, _a.concat([_f.sent()]))];
|
|
299
|
-
_d = (_c = jobs).reduce;
|
|
300
|
-
_e = [function (acc, job) {
|
|
301
|
-
var _a;
|
|
302
|
-
var jobWithResolvedReferences = replaceReferences(job, componentName, env, jobs);
|
|
303
|
-
var jobName = getFullJobName(job.name, componentName, job.envMode !== "none" ? env : undefined);
|
|
304
|
-
if (type === "gitlab") {
|
|
305
|
-
return __assign(__assign({}, acc), (_a = {}, _a[jobName] = (0, makeGitlabJob_1.makeGitlabJob)(jobWithResolvedReferences), _a));
|
|
306
|
-
}
|
|
307
|
-
throw new Error("not supported");
|
|
308
|
-
}];
|
|
309
|
-
return [4 /*yield*/, Promise.resolve({})];
|
|
310
|
-
case 3:
|
|
311
|
-
result = __assign.apply(void 0, _b.concat([_d.apply(_c, _e.concat([_f.sent()]))]));
|
|
312
|
-
return [2 /*return*/, result];
|
|
313
|
-
}
|
|
314
|
-
});
|
|
315
|
-
});
|
|
316
|
-
}, {})];
|
|
216
|
+
return [4 /*yield*/, (0, context_1.createContext)(config, componentName, env, commitInfo, packageManagerInfo)];
|
|
217
|
+
case 3:
|
|
218
|
+
context = _b.sent();
|
|
219
|
+
return [2 /*return*/, createRawJobs(context)];
|
|
317
220
|
}
|
|
318
221
|
});
|
|
319
222
|
});
|
|
320
223
|
};
|
|
321
|
-
exports.
|
|
224
|
+
exports.createJobsForComponent = createJobsForComponent;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { GitlabJobDef } from "../../types";
|
|
2
|
+
import type { CatladderJob } from "../../types/jobs";
|
|
3
|
+
import type { AllCatladderJobs } from "../createAllJobs";
|
|
4
|
+
declare type AllGitlabJobs = Record<string, GitlabJobDef>;
|
|
5
|
+
export declare const makeGitlabJob: (componentName: string, env: string, {
|
|
6
|
+
envMode,
|
|
7
|
+
needsStages,
|
|
8
|
+
needsOtherComponent,
|
|
9
|
+
name,
|
|
10
|
+
needs,
|
|
11
|
+
...job
|
|
12
|
+
}: CatladderJob<string>, allJobs: AllCatladderJobs) => [fullName: string, job: GitlabJobDef];
|
|
13
|
+
export declare const createGitlabJobs: (allJobs: AllCatladderJobs) => Promise<AllGitlabJobs>;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,260 @@
|
|
|
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
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) {
|
|
15
|
+
return value instanceof P ? value : new P(function (resolve) {
|
|
16
|
+
resolve(value);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
+
function fulfilled(value) {
|
|
21
|
+
try {
|
|
22
|
+
step(generator.next(value));
|
|
23
|
+
} catch (e) {
|
|
24
|
+
reject(e);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function rejected(value) {
|
|
28
|
+
try {
|
|
29
|
+
step(generator["throw"](value));
|
|
30
|
+
} catch (e) {
|
|
31
|
+
reject(e);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function step(result) {
|
|
35
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
36
|
+
}
|
|
37
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
var __generator = this && this.__generator || function (thisArg, body) {
|
|
41
|
+
var _ = {
|
|
42
|
+
label: 0,
|
|
43
|
+
sent: function () {
|
|
44
|
+
if (t[0] & 1) throw t[1];
|
|
45
|
+
return t[1];
|
|
46
|
+
},
|
|
47
|
+
trys: [],
|
|
48
|
+
ops: []
|
|
49
|
+
},
|
|
50
|
+
f,
|
|
51
|
+
y,
|
|
52
|
+
t,
|
|
53
|
+
g;
|
|
54
|
+
return g = {
|
|
55
|
+
next: verb(0),
|
|
56
|
+
"throw": verb(1),
|
|
57
|
+
"return": verb(2)
|
|
58
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
|
|
59
|
+
return this;
|
|
60
|
+
}), g;
|
|
61
|
+
function verb(n) {
|
|
62
|
+
return function (v) {
|
|
63
|
+
return step([n, v]);
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function step(op) {
|
|
67
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
68
|
+
while (_) try {
|
|
69
|
+
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;
|
|
70
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
71
|
+
switch (op[0]) {
|
|
72
|
+
case 0:
|
|
73
|
+
case 1:
|
|
74
|
+
t = op;
|
|
75
|
+
break;
|
|
76
|
+
case 4:
|
|
77
|
+
_.label++;
|
|
78
|
+
return {
|
|
79
|
+
value: op[1],
|
|
80
|
+
done: false
|
|
81
|
+
};
|
|
82
|
+
case 5:
|
|
83
|
+
_.label++;
|
|
84
|
+
y = op[1];
|
|
85
|
+
op = [0];
|
|
86
|
+
continue;
|
|
87
|
+
case 7:
|
|
88
|
+
op = _.ops.pop();
|
|
89
|
+
_.trys.pop();
|
|
90
|
+
continue;
|
|
91
|
+
default:
|
|
92
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
93
|
+
_ = 0;
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
97
|
+
_.label = op[1];
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
101
|
+
_.label = t[1];
|
|
102
|
+
t = op;
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
if (t && _.label < t[2]) {
|
|
106
|
+
_.label = t[2];
|
|
107
|
+
_.ops.push(op);
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
if (t[2]) _.ops.pop();
|
|
111
|
+
_.trys.pop();
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
op = body.call(thisArg, _);
|
|
115
|
+
} catch (e) {
|
|
116
|
+
op = [6, e];
|
|
117
|
+
y = 0;
|
|
118
|
+
} finally {
|
|
119
|
+
f = t = 0;
|
|
120
|
+
}
|
|
121
|
+
if (op[0] & 5) throw op[1];
|
|
122
|
+
return {
|
|
123
|
+
value: op[0] ? op[1] : void 0,
|
|
124
|
+
done: true
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
var __rest = this && this.__rest || function (s, e) {
|
|
129
|
+
var t = {};
|
|
130
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
131
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
132
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
133
|
+
}
|
|
134
|
+
return t;
|
|
135
|
+
};
|
|
136
|
+
var __read = this && this.__read || function (o, n) {
|
|
137
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
138
|
+
if (!m) return o;
|
|
139
|
+
var i = m.call(o),
|
|
140
|
+
r,
|
|
141
|
+
ar = [],
|
|
142
|
+
e;
|
|
143
|
+
try {
|
|
144
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
145
|
+
} catch (error) {
|
|
146
|
+
e = {
|
|
147
|
+
error: error
|
|
148
|
+
};
|
|
149
|
+
} finally {
|
|
150
|
+
try {
|
|
151
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
152
|
+
} finally {
|
|
153
|
+
if (e) throw e.error;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return ar;
|
|
157
|
+
};
|
|
158
|
+
var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
|
|
159
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
160
|
+
if (ar || !(i in from)) {
|
|
161
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
162
|
+
ar[i] = from[i];
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
166
|
+
};
|
|
167
|
+
exports.__esModule = true;
|
|
168
|
+
exports.createGitlabJobs = exports.makeGitlabJob = void 0;
|
|
169
|
+
var lodash_1 = require("lodash");
|
|
170
|
+
var defaults_1 = require("../../defaults");
|
|
171
|
+
var getFullJobName = function (name, componentName, env) {
|
|
172
|
+
if (env) {
|
|
173
|
+
return "".concat(componentName, " ").concat(name, " | ").concat(env, " ");
|
|
174
|
+
}
|
|
175
|
+
return "".concat(componentName, " ").concat(name);
|
|
176
|
+
};
|
|
177
|
+
var getFullReferencedJobName = function (referencedJobName, componentName, env, allJobs) {
|
|
178
|
+
var _a, _b;
|
|
179
|
+
var referencedJob = (_b = (_a = allJobs[componentName]) === null || _a === void 0 ? void 0 : _a[env]) === null || _b === void 0 ? void 0 : _b.find(function (j) {
|
|
180
|
+
return j.name === referencedJobName;
|
|
181
|
+
});
|
|
182
|
+
if (!referencedJob) {
|
|
183
|
+
throw new Error("unknown job referenced: '".concat(referencedJobName, "' from '").concat(env, ":").concat(componentName, "'"));
|
|
184
|
+
}
|
|
185
|
+
var envToSet = referencedJob.envMode !== "none" ? env : null;
|
|
186
|
+
return getFullJobName(referencedJobName, componentName, envToSet);
|
|
187
|
+
};
|
|
188
|
+
var getJobName = function (need) {
|
|
189
|
+
return (0, lodash_1.isObject)(need) ? need.job : need;
|
|
190
|
+
};
|
|
191
|
+
var makeGitlabJob = function (componentName, env, _a, allJobs) {
|
|
192
|
+
var _b;
|
|
193
|
+
var envMode = _a.envMode,
|
|
194
|
+
needsStages = _a.needsStages,
|
|
195
|
+
needsOtherComponent = _a.needsOtherComponent,
|
|
196
|
+
name = _a.name,
|
|
197
|
+
needs = _a.needs,
|
|
198
|
+
job = __rest(_a, ["envMode", "needsStages", "needsOtherComponent", "name", "needs"]);
|
|
199
|
+
var stage = envMode === "stagePerEnv" ? "".concat(job.stage, " ").concat(env) : job.stage;
|
|
200
|
+
var needsFromStages = needsStages === null || needsStages === void 0 ? void 0 : needsStages.flatMap(function (n) {
|
|
201
|
+
var _a, _b, _c, _d;
|
|
202
|
+
var referencedComponentName = componentName;
|
|
203
|
+
var allJobNamesFromThatStage = (_d = (_c = (_b = (_a = allJobs[referencedComponentName]) === null || _a === void 0 ? void 0 : _a[env]) === null || _b === void 0 ? void 0 : _b.filter(function (j) {
|
|
204
|
+
return j.stage === n.stage;
|
|
205
|
+
})) === null || _c === void 0 ? void 0 : _c.map(function (j) {
|
|
206
|
+
return j.name;
|
|
207
|
+
})) !== null && _d !== void 0 ? _d : [];
|
|
208
|
+
return allJobNamesFromThatStage.map(function (job) {
|
|
209
|
+
var _a;
|
|
210
|
+
return {
|
|
211
|
+
job: job,
|
|
212
|
+
artifacts: (_a = n.artifacts) !== null && _a !== void 0 ? _a : false,
|
|
213
|
+
componentName: referencedComponentName
|
|
214
|
+
};
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
var cleanedNeeds = __spreadArray(__spreadArray(__spreadArray([], __read(needs !== null && needs !== void 0 ? needs : []), false), __read(needsOtherComponent !== null && needsOtherComponent !== void 0 ? needsOtherComponent : []), false), __read(needsFromStages !== null && needsFromStages !== void 0 ? needsFromStages : []), false);
|
|
218
|
+
var gitlabNeeds = cleanedNeeds === null || cleanedNeeds === void 0 ? void 0 : cleanedNeeds.map(function (n) {
|
|
219
|
+
var _a;
|
|
220
|
+
return (0, lodash_1.isObject)(n) ? {
|
|
221
|
+
job: getFullReferencedJobName(n.job, (_a = n.componentName) !== null && _a !== void 0 ? _a : componentName, env, allJobs),
|
|
222
|
+
artifacts: n.artifacts
|
|
223
|
+
} : getFullReferencedJobName(n, componentName, env, allJobs);
|
|
224
|
+
}).sort(function (a, b) {
|
|
225
|
+
return getJobName(a).localeCompare(getJobName(b));
|
|
226
|
+
});
|
|
227
|
+
var fullJobName = getFullJobName(name, componentName, envMode !== "none" ? env : undefined);
|
|
228
|
+
var gitlabJob = __assign(__assign({}, job), {
|
|
229
|
+
stage: stage,
|
|
230
|
+
environment: ((_b = job.environment) === null || _b === void 0 ? void 0 : _b.on_stop) ? __assign(__assign({}, job.environment), {
|
|
231
|
+
on_stop: getFullReferencedJobName(job.environment.on_stop, componentName, env, allJobs)
|
|
232
|
+
}) : job.environment,
|
|
233
|
+
// sort in a predictable manner for snapshot tests
|
|
234
|
+
needs: gitlabNeeds,
|
|
235
|
+
retry: defaults_1.BASE_RETRY,
|
|
236
|
+
interruptible: true
|
|
237
|
+
});
|
|
238
|
+
return [fullJobName, gitlabJob];
|
|
239
|
+
};
|
|
240
|
+
exports.makeGitlabJob = makeGitlabJob;
|
|
241
|
+
var createGitlabJobs = function (allJobs) {
|
|
242
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
243
|
+
return __generator(this, function (_a) {
|
|
244
|
+
return [2 /*return*/, Object.keys(allJobs).reduce(function (accForComponents, componentName) {
|
|
245
|
+
var componentJobs = allJobs[componentName];
|
|
246
|
+
return __assign(__assign({}, accForComponents), Object.keys(componentJobs).reduce(function (accForEnvs, env) {
|
|
247
|
+
var jobs = componentJobs[env];
|
|
248
|
+
return __assign(__assign({}, accForEnvs), jobs.reduce(function (accForJobs, job) {
|
|
249
|
+
var _a;
|
|
250
|
+
var _b = __read((0, exports.makeGitlabJob)(componentName, env, job, allJobs), 2),
|
|
251
|
+
fullJobName = _b[0],
|
|
252
|
+
gitlabJob = _b[1];
|
|
253
|
+
return __assign(__assign({}, accForJobs), (_a = {}, _a[fullJobName] = gitlabJob, _a));
|
|
254
|
+
}, {}));
|
|
255
|
+
}, {}));
|
|
256
|
+
}, {})];
|
|
257
|
+
});
|
|
258
|
+
});
|
|
259
|
+
};
|
|
260
|
+
exports.createGitlabJobs = createGitlabJobs;
|
package/dist/pipeline/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from "./createChildPipeline";
|
|
2
|
-
export * from "./
|
|
2
|
+
export * from "./createJobsForComponent";
|
package/dist/pipeline/index.js
CHANGED
|
@@ -17,4 +17,4 @@ var __exportStar = this && this.__exportStar || function (m, exports) {
|
|
|
17
17
|
};
|
|
18
18
|
exports.__esModule = true;
|
|
19
19
|
__exportStar(require("./createChildPipeline"), exports);
|
|
20
|
-
__exportStar(require("./
|
|
20
|
+
__exportStar(require("./createJobsForComponent"), exports);
|