@catladder/pipeline 3.18.0 → 3.20.0
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/catenv/index.d.ts +7 -0
- package/dist/catenv/index.js +14 -0
- package/dist/catladder-gitlab.js +4 -1
- package/dist/constants.js +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/pipeline/createMainPipeline.js +1 -1
- package/dist/pipeline/generatePipelineFiles.d.ts +2 -1
- package/dist/pipeline/generatePipelineFiles.js +3 -4
- package/dist/pipeline/gitlab/gitlabReleaseJobs.d.ts +2 -1
- package/dist/pipeline/gitlab/gitlabReleaseJobs.js +48 -3
- package/dist/rules/index.d.ts +1 -3
- package/dist/rules/index.js +2 -19
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/config.d.ts +10 -0
- package/dist/types/hooks.d.ts +26 -0
- package/dist/types/hooks.js +5 -0
- package/dist/types/release.d.ts +7 -0
- package/dist/types/release.js +5 -0
- package/dist/utils/writeFiles.d.ts +12 -6
- package/dist/utils/writeFiles.js +59 -41
- package/examples/__snapshots__/automatic-releases.test.ts.snap +1484 -0
- package/examples/__snapshots__/cloud-run-health-check-defaults.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-health-check-only-startup.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-health-check.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-http2.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-llama.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-memory-limit.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-meteor-with-worker.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-nextjs.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-no-cpu-throttling.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-no-service.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-non-public.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-post-stop-job.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-service-custom-vpc-connector.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-service-custom-vpc.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-service-gen2.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-service-increase-timout.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-service-with-volumes.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-storybook.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-with-agents.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-with-gpu.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-with-ngnix.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-with-sql-legacy-jobs.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-with-sql-multiple-dbs.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-with-sql-reuse-db.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-with-sql.test.ts.snap +0 -2
- package/examples/__snapshots__/cloud-run-with-worker.test.ts.snap +0 -2
- package/examples/__snapshots__/custom-build-job-with-tests.test.ts.snap +0 -2
- package/examples/__snapshots__/custom-build-job.test.ts.snap +0 -2
- package/examples/__snapshots__/custom-deploy.test.ts.snap +0 -2
- package/examples/__snapshots__/custom-envs.test.ts.snap +0 -2
- package/examples/__snapshots__/custom-sbom-java.test.ts.snap +0 -2
- package/examples/__snapshots__/custom-verify-job.test.ts.snap +0 -2
- package/examples/__snapshots__/git-submodule.test.ts.snap +0 -2
- package/examples/__snapshots__/kubernetes-application-customization.test.ts.snap +0 -2
- package/examples/__snapshots__/kubernetes-with-cloud-sql.test.ts.snap +0 -2
- package/examples/__snapshots__/kubernetes-with-jobs.test.ts.snap +0 -2
- package/examples/__snapshots__/kubernetes-with-mongodb.test.ts.snap +0 -2
- package/examples/__snapshots__/local-dot-env.test.ts.snap +0 -2
- package/examples/__snapshots__/meteor-kubernetes.test.ts.snap +0 -2
- package/examples/__snapshots__/modify-generated-files.test.ts.snap +640 -0
- package/examples/__snapshots__/multiline-var.test.ts.snap +0 -2
- package/examples/__snapshots__/native-app.test.ts.snap +0 -2
- package/examples/__snapshots__/node-build-with-custom-image.test.ts.snap +0 -2
- package/examples/__snapshots__/node-build-with-docker-additions.test.ts.snap +0 -2
- package/examples/__snapshots__/override-secrets.test.ts.snap +0 -2
- package/examples/__snapshots__/rails-k8s-with-worker-dockerfile.test.ts.snap +0 -2
- package/examples/__snapshots__/rails-k8s-with-worker.test.ts.snap +0 -2
- package/examples/__snapshots__/referencing-other-vars.test.ts.snap +0 -2
- package/examples/__snapshots__/wait-for-other-deploy.test.ts.snap +0 -2
- package/examples/__snapshots__/workspace-api-www-turbo-cache.test.ts.snap +0 -2
- package/examples/__snapshots__/workspace-api-www.test.ts.snap +0 -2
- package/examples/automatic-releases.test.ts +11 -0
- package/examples/automatic-releases.ts +28 -0
- package/examples/modify-generated-files.test.ts +11 -0
- package/examples/modify-generated-files.ts +29 -0
- package/package.json +1 -1
- package/src/catenv/index.ts +14 -0
- package/src/catladder-gitlab.ts +4 -1
- package/src/index.ts +1 -0
- package/src/pipeline/createMainPipeline.ts +9 -7
- package/src/pipeline/generatePipelineFiles.ts +5 -4
- package/src/pipeline/gitlab/gitlabReleaseJobs.ts +37 -4
- package/src/rules/index.ts +0 -32
- package/src/types/config.ts +12 -0
- package/src/types/hooks.ts +29 -0
- package/src/types/release.ts +7 -0
- package/src/utils/writeFiles.ts +58 -34
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createCatenvContext = void 0;
|
|
7
|
+
var writeFiles_1 = require("../utils/writeFiles");
|
|
8
|
+
var createCatenvContext = function (config) {
|
|
9
|
+
return {
|
|
10
|
+
config: config,
|
|
11
|
+
fileWriter: writeFiles_1.FileWriter.create(config)
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
exports.createCatenvContext = createCatenvContext;
|
package/dist/catladder-gitlab.js
CHANGED
|
@@ -120,15 +120,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
120
120
|
});
|
|
121
121
|
var config_1 = require("./config");
|
|
122
122
|
var generatePipelineFiles_1 = require("./pipeline/generatePipelineFiles");
|
|
123
|
+
var catenv_1 = require("./catenv");
|
|
123
124
|
(0, config_1.readConfig)().then(function (result) {
|
|
124
125
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
126
|
+
var context;
|
|
125
127
|
return __generator(this, function (_a) {
|
|
126
128
|
switch (_a.label) {
|
|
127
129
|
case 0:
|
|
128
130
|
if (!(result === null || result === void 0 ? void 0 : result.config)) {
|
|
129
131
|
throw new Error("no catladder config found");
|
|
130
132
|
}
|
|
131
|
-
|
|
133
|
+
context = (0, catenv_1.createCatenvContext)(result.config);
|
|
134
|
+
return [4 /*yield*/, (0, generatePipelineFiles_1.generatePipelineFiles)(context, "gitlab")];
|
|
132
135
|
case 1:
|
|
133
136
|
_a.sent();
|
|
134
137
|
return [2 /*return*/];
|
package/dist/constants.js
CHANGED
|
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
|
|
7
|
-
exports.PIPELINE_IMAGE_TAG = "v3-
|
|
7
|
+
exports.PIPELINE_IMAGE_TAG = "v3-20-0-f84d9d38" || "latest";
|
|
8
8
|
exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || "git.panter.ch:5001/catladder/catladder";
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -32,4 +32,5 @@ __exportStar(require("./build"), exports);
|
|
|
32
32
|
__exportStar(require("./deploy"), exports);
|
|
33
33
|
__exportStar(require("./utils/writeFiles"), exports);
|
|
34
34
|
__exportStar(require("./variables/VariableValue"), exports);
|
|
35
|
-
__exportStar(require("./bash"), exports);
|
|
35
|
+
__exportStar(require("./bash"), exports);
|
|
36
|
+
__exportStar(require("./catenv"), exports);
|
|
@@ -254,7 +254,7 @@ var createMainPipeline = function (pipelineType, config) {
|
|
|
254
254
|
}, {});
|
|
255
255
|
return [2 /*return*/, (0, createGitlabPipeline_1.createGitlabPipelineWithDefaults)({
|
|
256
256
|
stages: __spreadArray(__spreadArray([], __read(stages), false), ["release"], false),
|
|
257
|
-
jobs: __assign(__assign({}, allJobs), Object.fromEntries(Object.entries((0, gitlabReleaseJobs_1.getGitlabReleaseJobs)()).map(function (_a) {
|
|
257
|
+
jobs: __assign(__assign({}, allJobs), Object.fromEntries(Object.entries((0, gitlabReleaseJobs_1.getGitlabReleaseJobs)(config)).map(function (_a) {
|
|
258
258
|
var _b = __read(_a, 2),
|
|
259
259
|
name = _b[0],
|
|
260
260
|
gitlabJob = _b[1];
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Config, PipelineType } from "../types";
|
|
2
|
-
|
|
2
|
+
import type { CatenvContext } from "../catenv";
|
|
3
|
+
export declare function generatePipelineFiles<T extends PipelineType>(context: CatenvContext, pipelineType: T): Promise<void>;
|
|
3
4
|
/**
|
|
4
5
|
*
|
|
5
6
|
* for testing purposes
|
|
@@ -170,12 +170,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
170
170
|
exports.getGitlabCompletePipeline = exports.generatePipelineFiles = void 0;
|
|
171
171
|
var promises_1 = require("fs/promises");
|
|
172
172
|
var path_1 = require("path");
|
|
173
|
-
var writeFiles_1 = require("../utils/writeFiles");
|
|
174
173
|
var createMainPipeline_1 = require("./createMainPipeline");
|
|
175
174
|
var sortGitLabJobDefProps_1 = require("./gitlab/sortGitLabJobDefProps");
|
|
176
175
|
var CATLADDER_GENERATED_FOLDER = ".catladder-generated";
|
|
177
176
|
var GITLAB_GENERATED_FOLDER = CATLADDER_GENERATED_FOLDER + "/gitlab";
|
|
178
|
-
function generatePipelineFiles(
|
|
177
|
+
function generatePipelineFiles(context, pipelineType) {
|
|
179
178
|
return __awaiter(this, void 0, void 0, function () {
|
|
180
179
|
var includes, mainFile, files;
|
|
181
180
|
var _this = this;
|
|
@@ -185,7 +184,7 @@ function generatePipelineFiles(config, pipelineType) {
|
|
|
185
184
|
if (pipelineType !== "gitlab") {
|
|
186
185
|
throw new Error("Pipeline type not supported");
|
|
187
186
|
}
|
|
188
|
-
return [4 /*yield*/, getGitlabPipelineIncludes(config)];
|
|
187
|
+
return [4 /*yield*/, getGitlabPipelineIncludes(context.config)];
|
|
189
188
|
case 1:
|
|
190
189
|
includes = _a.sent();
|
|
191
190
|
mainFile = {
|
|
@@ -218,7 +217,7 @@ function generatePipelineFiles(config, pipelineType) {
|
|
|
218
217
|
})];
|
|
219
218
|
case 1:
|
|
220
219
|
_c.sent();
|
|
221
|
-
return [4 /*yield*/,
|
|
220
|
+
return [4 /*yield*/, context.fileWriter.writeYamlfile(path, content)];
|
|
222
221
|
case 2:
|
|
223
222
|
_c.sent();
|
|
224
223
|
return [2 /*return*/];
|
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
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
|
+
try {
|
|
11
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
12
|
+
} catch (error) {
|
|
13
|
+
e = {
|
|
14
|
+
error: error
|
|
15
|
+
};
|
|
16
|
+
} finally {
|
|
17
|
+
try {
|
|
18
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
19
|
+
} finally {
|
|
20
|
+
if (e) throw e.error;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
|
|
26
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
27
|
+
if (ar || !(i in from)) {
|
|
28
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
29
|
+
ar[i] = from[i];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
33
|
+
};
|
|
3
34
|
Object.defineProperty(exports, "__esModule", {
|
|
4
35
|
value: true
|
|
5
36
|
});
|
|
@@ -7,19 +38,33 @@ exports.getGitlabReleaseJobs = void 0;
|
|
|
7
38
|
var rules_1 = require("../../rules");
|
|
8
39
|
var runner_1 = require("../../runner");
|
|
9
40
|
var EXPIRED_TOKEN_HELP = "echo '👉 The project access token might be invald - run `project-renew-token` in catladder CLI to fix.'";
|
|
10
|
-
var
|
|
41
|
+
var baseReleaseRules = [rules_1.RULE_NEVER_ON_RELEASE_COMMIT, rules_1.RULE_NEVER_ON_AGENT_TRIGGER, rules_1.RULE_NEVER_ON_SCHEDULE];
|
|
42
|
+
var getGitlabReleaseJobs = function (config) {
|
|
11
43
|
var _a;
|
|
44
|
+
var _b;
|
|
12
45
|
return _a = {}, _a["create release"] = {
|
|
13
46
|
stage: "release",
|
|
14
47
|
image: (0, runner_1.getRunnerImage)("semantic-release"),
|
|
15
48
|
script: ["semanticRelease", EXPIRED_TOKEN_HELP],
|
|
16
|
-
rules:
|
|
49
|
+
rules: __spreadArray(__spreadArray([], __read(baseReleaseRules), false), [{
|
|
50
|
+
if: rules_1.RULE_CONDITION_MAIN_BRANCH,
|
|
51
|
+
when: ((_b = config.releases) === null || _b === void 0 ? void 0 : _b.when) === "auto" ? "on_success" : "manual"
|
|
52
|
+
}, {
|
|
53
|
+
if: rules_1.RULE_CONDITION_HOTFIX_BRANCH,
|
|
54
|
+
when: "manual"
|
|
55
|
+
}], false)
|
|
17
56
|
}, _a["⚠️ force create release"] = {
|
|
18
57
|
stage: "release",
|
|
19
58
|
image: (0, runner_1.getRunnerImage)("semantic-release"),
|
|
20
59
|
script: ["semanticRelease", EXPIRED_TOKEN_HELP],
|
|
21
60
|
needs: [],
|
|
22
|
-
rules:
|
|
61
|
+
rules: __spreadArray(__spreadArray([], __read(baseReleaseRules), false), [{
|
|
62
|
+
if: rules_1.RULE_CONDITION_MAIN_BRANCH,
|
|
63
|
+
when: "manual"
|
|
64
|
+
}, {
|
|
65
|
+
if: rules_1.RULE_CONDITION_HOTFIX_BRANCH,
|
|
66
|
+
when: "manual"
|
|
67
|
+
}], false)
|
|
23
68
|
}, _a;
|
|
24
69
|
};
|
|
25
70
|
exports.getGitlabReleaseJobs = getGitlabReleaseJobs;
|
package/dist/rules/index.d.ts
CHANGED
|
@@ -9,6 +9,4 @@ export declare const RULE_NEVER_ON_AGENT_TRIGGER: GitlabRule;
|
|
|
9
9
|
export declare const RULE_NEVER_ON_SCHEDULE: GitlabRule;
|
|
10
10
|
export declare const RULE_IS_MERGE_REQUEST: GitlabRule;
|
|
11
11
|
export declare const RULE_IS_TAGGED_RELEASE: GitlabRule;
|
|
12
|
-
export declare const RULE_CONDITION_HOTFIX_BRANCH = "$CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/";
|
|
13
|
-
export declare const RULES_RELEASE: GitlabRule[];
|
|
14
|
-
export declare const RULES_MANUAL_RELEASE: GitlabRule[];
|
|
12
|
+
export declare const RULE_CONDITION_HOTFIX_BRANCH = "$CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/";
|
package/dist/rules/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.RULE_CONDITION_HOTFIX_BRANCH = exports.RULE_IS_TAGGED_RELEASE = exports.RULE_IS_MERGE_REQUEST = exports.RULE_NEVER_ON_SCHEDULE = exports.RULE_NEVER_ON_AGENT_TRIGGER = exports.RULE_NEVER_ON_RELEASE_COMMIT = exports.RULE_IS_MAIN_BRANCH_AND_NOT_RELEASE_COMMIT = exports.RULE_IS_MAIN_BRANCH = exports.RULE_CONDITION_NOT_RELEASE_COMMIT = exports.RULE_CONDITION_RELEASE_COMMIT = exports.RULE_CONDITION_MAIN_BRANCH = void 0;
|
|
7
7
|
exports.RULE_CONDITION_MAIN_BRANCH = "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH";
|
|
8
8
|
exports.RULE_CONDITION_RELEASE_COMMIT = "$CI_COMMIT_MESSAGE =~ /^chore\\(release\\).*/";
|
|
9
9
|
exports.RULE_CONDITION_NOT_RELEASE_COMMIT = "$CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/";
|
|
@@ -32,21 +32,4 @@ exports.RULE_IS_MERGE_REQUEST = {
|
|
|
32
32
|
exports.RULE_IS_TAGGED_RELEASE = {
|
|
33
33
|
if: "$CI_COMMIT_TAG"
|
|
34
34
|
};
|
|
35
|
-
exports.RULE_CONDITION_HOTFIX_BRANCH = "$CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/";
|
|
36
|
-
exports.RULES_RELEASE = [exports.RULE_NEVER_ON_RELEASE_COMMIT, exports.RULE_NEVER_ON_AGENT_TRIGGER, exports.RULE_NEVER_ON_SCHEDULE, {
|
|
37
|
-
if: exports.RULE_CONDITION_MAIN_BRANCH + ' && $AUTO_RELEASE == "true"',
|
|
38
|
-
when: "on_success"
|
|
39
|
-
}, {
|
|
40
|
-
if: exports.RULE_CONDITION_MAIN_BRANCH,
|
|
41
|
-
when: "manual"
|
|
42
|
-
}, {
|
|
43
|
-
if: exports.RULE_CONDITION_HOTFIX_BRANCH,
|
|
44
|
-
when: "manual"
|
|
45
|
-
}];
|
|
46
|
-
exports.RULES_MANUAL_RELEASE = [exports.RULE_NEVER_ON_RELEASE_COMMIT, exports.RULE_NEVER_ON_AGENT_TRIGGER, exports.RULE_NEVER_ON_SCHEDULE, {
|
|
47
|
-
if: exports.RULE_CONDITION_MAIN_BRANCH,
|
|
48
|
-
when: "manual"
|
|
49
|
-
}, {
|
|
50
|
-
if: exports.RULE_CONDITION_HOTFIX_BRANCH,
|
|
51
|
-
when: "manual"
|
|
52
|
-
}];
|
|
35
|
+
exports.RULE_CONDITION_HOTFIX_BRANCH = "$CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/";
|