@catladder/cli 0.0.0-next-52feb889 → 0.0.0-next-c177efda
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/bundles/catci/index.js +19 -0
- package/dist/bundles/catenv/index.js +88 -13
- package/dist/bundles/cli/index.js +88 -13
- package/dist/bundles/runner-images/semantic-release/Dockerfile +2 -7
- package/dist/bundles/runner-images/semantic-release/scripts/semanticRelease +18 -1
- package/dist/bundles/runner-images/semantic-release-central.Dockerfile +34 -0
- package/dist/cli/src/catci.d.ts +1 -0
- package/dist/cli/src/catci.js +100 -0
- package/dist/cli/src/catci.js.map +1 -0
- package/dist/pipeline/src/backends/github/GithubBackend.js +4 -1
- package/dist/pipeline/src/backends/github/GithubBackend.js.map +1 -1
- package/dist/pipeline/src/backends/gitlab/GitlabBackend.js +9 -2
- package/dist/pipeline/src/backends/gitlab/GitlabBackend.js.map +1 -1
- package/dist/pipeline/src/backends/gitlab/gitlabReleaseJobs.d.ts +2 -1
- package/dist/pipeline/src/backends/gitlab/gitlabReleaseJobs.js +11 -4
- package/dist/pipeline/src/backends/gitlab/gitlabReleaseJobs.js.map +1 -1
- package/dist/pipeline/src/bash/bashEscape.js +5 -1
- package/dist/pipeline/src/bash/bashEscape.js.map +1 -1
- package/dist/pipeline/src/build/types.d.ts +1 -1
- package/dist/pipeline/src/catci/shippedCatci.d.ts +8 -0
- package/dist/pipeline/src/catci/shippedCatci.js +39 -0
- package/dist/pipeline/src/catci/shippedCatci.js.map +1 -0
- package/dist/pipeline/src/constants.js +1 -1
- package/dist/pipeline/src/context/getEnvironmentVariables.d.ts +1 -1
- package/dist/pipeline/src/customImages/shippedImages.d.ts +5 -3
- package/dist/pipeline/src/customImages/shippedImages.js +6 -4
- package/dist/pipeline/src/customImages/shippedImages.js.map +1 -1
- package/dist/pipeline/src/deploy/types/index.d.ts +2 -2
- package/dist/pipeline/src/pipeline/generatePipelineFiles.js +6 -0
- package/dist/pipeline/src/pipeline/generatePipelineFiles.js.map +1 -1
- package/dist/pipeline/src/types/config.d.ts +3 -3
- package/dist/runner-images/semantic-release/Dockerfile +2 -7
- package/dist/runner-images/semantic-release/scripts/semanticRelease +18 -1
- package/dist/runner-images/semantic-release-central.Dockerfile +34 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/scripts/bundle +4 -0
- package/src/catci.ts +123 -0
|
@@ -9,6 +9,7 @@ const rules_1 = require("../../rules");
|
|
|
9
9
|
const config_1 = require("../../types/config");
|
|
10
10
|
const createAllJobs_1 = require("../../pipeline/createAllJobs");
|
|
11
11
|
const jobImagesPlan_1 = require("../../customImages/jobImagesPlan");
|
|
12
|
+
const shippedCatci_1 = require("../../catci/shippedCatci");
|
|
12
13
|
const createGitlabJobs_1 = require("./createGitlabJobs");
|
|
13
14
|
const createGitlabPipeline_1 = require("./createGitlabPipeline");
|
|
14
15
|
const gitlabReleaseJobs_1 = require("./gitlabReleaseJobs");
|
|
@@ -38,7 +39,9 @@ class GitlabBackend {
|
|
|
38
39
|
};
|
|
39
40
|
return [mainFile, ...includes,
|
|
40
41
|
// materialized image definitions (repo mode)
|
|
41
|
-
...images.getGeneratedFiles()
|
|
42
|
+
...images.getGeneratedFiles(),
|
|
43
|
+
// catci: the CI companion the release job's security audit runs
|
|
44
|
+
...(0, shippedCatci_1.getCatciGeneratedFiles)()];
|
|
42
45
|
}
|
|
43
46
|
createImagesPlan(config) {
|
|
44
47
|
return new jobImagesPlan_1.JobImagesPlan((0, jobImagesPlan_1.getJobImagesMode)(config, this.type), this.type);
|
|
@@ -102,6 +105,10 @@ class GitlabBackend {
|
|
|
102
105
|
}
|
|
103
106
|
async createPipeline(config, images) {
|
|
104
107
|
const stages = (0, getPipelineStages_1.getPipelineStages)(config);
|
|
108
|
+
// release jobs first: they register their image on the plan, and the
|
|
109
|
+
// per-trigger job creation below emits the build jobs of all images
|
|
110
|
+
// registered so far
|
|
111
|
+
const releaseJobs = (0, gitlabReleaseJobs_1.getGitlabReleaseJobs)(config, images);
|
|
105
112
|
// for all triggers create jobs and add base rules
|
|
106
113
|
const allJobsPerTrigger = await Promise.all(config_1.ALL_PIPELINE_TRIGGERS.map(async trigger => await (0, createGitlabJobs_1.createGitlabJobs)(await (0, createAllJobs_1.createAllJobs)({
|
|
107
114
|
config,
|
|
@@ -161,7 +168,7 @@ class GitlabBackend {
|
|
|
161
168
|
stages: [...stages, "release"],
|
|
162
169
|
jobs: {
|
|
163
170
|
...allJobs,
|
|
164
|
-
...Object.fromEntries(Object.entries(
|
|
171
|
+
...Object.fromEntries(Object.entries(releaseJobs).map(([name, gitlabJob]) => [name, {
|
|
165
172
|
gitlabJob,
|
|
166
173
|
context: null
|
|
167
174
|
}]))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitlabBackend.js","sourceRoot":"","sources":["../../../../../../pipeline/src/backends/gitlab/GitlabBackend.ts"],"names":[],"mappings":";;;AAAA,0CAAiC;AACjC,uCAKqB;AAUrB,+CAA2D;AAC3D,gEAA6D;AAC7D,oEAG0C;
|
|
1
|
+
{"version":3,"file":"GitlabBackend.js","sourceRoot":"","sources":["../../../../../../pipeline/src/backends/gitlab/GitlabBackend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import type { JobImagesPlan } from "../../customImages/jobImagesPlan";
|
|
1
2
|
import type { Config } from "../../types/config";
|
|
2
|
-
export declare const getGitlabReleaseJobs: (config: Config) => {
|
|
3
|
+
export declare const getGitlabReleaseJobs: (config: Config, images: JobImagesPlan) => {
|
|
3
4
|
"create release": {
|
|
4
5
|
stage: string;
|
|
5
6
|
image: string;
|
|
@@ -5,15 +5,22 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getGitlabReleaseJobs = void 0;
|
|
7
7
|
const rules_1 = require("../../rules");
|
|
8
|
-
const runner_1 = require("../../runner");
|
|
9
8
|
const EXPIRED_TOKEN_HELP = "echo '👉 If this job failed with access denied, the project access token might be invald - run `project-renew-token` in catladder CLI to fix.'";
|
|
10
9
|
const baseReleaseRules = [rules_1.RULE_NEVER_ON_RELEASE_COMMIT, rules_1.RULE_NEVER_ON_AGENT_TRIGGER, rules_1.RULE_NEVER_ON_SCHEDULE];
|
|
11
|
-
const getGitlabReleaseJobs = config => {
|
|
10
|
+
const getGitlabReleaseJobs = (config, images) => {
|
|
12
11
|
var _a;
|
|
12
|
+
// NOTE: only the resolved image url is used, not the `need`: release
|
|
13
|
+
// jobs have no `needs` on purpose — their stage ordering already
|
|
14
|
+
// guarantees the image build job (setup stage) ran, and adding a
|
|
15
|
+
// `needs` would switch gitlab to DAG mode, so the release job would no
|
|
16
|
+
// longer wait for the build/deploy stages.
|
|
17
|
+
const releaseImage = images.resolveRef({
|
|
18
|
+
catladderImage: "semantic-release"
|
|
19
|
+
}).image;
|
|
13
20
|
return {
|
|
14
21
|
["create release"]: {
|
|
15
22
|
stage: "release",
|
|
16
|
-
image:
|
|
23
|
+
image: releaseImage,
|
|
17
24
|
script: ["semanticRelease"],
|
|
18
25
|
after_script: [EXPIRED_TOKEN_HELP],
|
|
19
26
|
rules: [...baseReleaseRules, {
|
|
@@ -26,7 +33,7 @@ const getGitlabReleaseJobs = config => {
|
|
|
26
33
|
},
|
|
27
34
|
["⚠️ force create release"]: {
|
|
28
35
|
stage: "release",
|
|
29
|
-
image:
|
|
36
|
+
image: releaseImage,
|
|
30
37
|
script: ["semanticRelease"],
|
|
31
38
|
after_script: [EXPIRED_TOKEN_HELP],
|
|
32
39
|
needs: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitlabReleaseJobs.js","sourceRoot":"","sources":["../../../../../../pipeline/src/backends/gitlab/gitlabReleaseJobs.ts"],"names":[],"mappings":";;;AAAA,uCAMqB;
|
|
1
|
+
{"version":3,"file":"gitlabReleaseJobs.js","sourceRoot":"","sources":["../../../../../../pipeline/src/backends/gitlab/gitlabReleaseJobs.ts"],"names":[],"mappings":";;;AAAA,uCAMqB;AAKrB,MAAM,kBAAkB,GACtB,gJAAgJ,CAAC;AAEnJ,MAAM,gBAAgB,GAAG;IACvB,oCAA4B;IAC5B,mCAA2B;IAC3B,8BAAsB;CACvB,CAAC;AACK,MAAM,oBAAoB,GAAG,CAAC,MAAc,EAAE,MAAqB,EAAE,EAAE;;IAC5E,qEAAqE;IACrE,iEAAiE;IACjE,iEAAiE;IACjE,uEAAuE;IACvE,2CAA2C;IAC3C,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC;QACrC,cAAc,EAAE,kBAAkB;KACnC,CAAC,CAAC,KAAK,CAAC;IACT,OAAO;QACL,CAAC,gBAAgB,CAAC,EAAE;YAClB,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,CAAC,iBAAiB,CAAC;YAC3B,YAAY,EAAE,CAAC,kBAAkB,CAAC;YAClC,KAAK,EAAE;gBACL,GAAG,gBAAgB;gBACnB;oBACE,EAAE,EAAE,kCAA0B;oBAC9B,IAAI,EAAE,CAAA,MAAA,MAAM,CAAC,QAAQ,0CAAE,IAAI,MAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ;iBACjE;gBACD;oBACE,EAAE,EAAE,oCAA4B;oBAChC,IAAI,EAAE,QAAQ;iBACf;aACqB;SACzB;QACD,CAAC,yBAAyB,CAAC,EAAE;YAC3B,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,CAAC,iBAAiB,CAAC;YAC3B,YAAY,EAAE,CAAC,kBAAkB,CAAC;YAClC,KAAK,EAAE,EAAE;YACT,KAAK,EAAE;gBACL,GAAG,gBAAgB;gBACnB;oBACE,EAAE,EAAE,kCAA0B;oBAC9B,IAAI,EAAE,QAAQ;iBACf;gBACD;oBACE,EAAE,EAAE,oCAA4B;oBAChC,IAAI,EAAE,QAAQ;iBACf;aACqB;SACzB;KACF,CAAC;AACJ,CAAC,CAAC;AA9CW,QAAA,oBAAoB,wBA8C/B"}
|
|
@@ -89,8 +89,12 @@ const escapeForDotEnv = (value, options = {
|
|
|
89
89
|
// instead of doing it part-wise, we just do it all at once
|
|
90
90
|
const containsAnyBashExpression = value.parts.some(part => part instanceof BashExpression_1.BashExpression);
|
|
91
91
|
if (!containsAnyBashExpression) {
|
|
92
|
+
// all parts are literal: the value never passes through bash, so it
|
|
93
|
+
// must NOT be bash-escaped — `quotes: "double"` would bake literal
|
|
94
|
+
// \" into the env value (e.g. JSON values, since the deterministic
|
|
95
|
+
// cloud run urls made such values fully literal)
|
|
92
96
|
return (0, exports.escapeForDotEnv)(value.toString({
|
|
93
|
-
quotes:
|
|
97
|
+
quotes: false
|
|
94
98
|
}));
|
|
95
99
|
} else {
|
|
96
100
|
const result = escapeBashExpressionForDotEnv(new BashExpression_1.BashExpression(value.toString({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bashEscape.js","sourceRoot":"","sources":["../../../../../pipeline/src/bash/bashEscape.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bashEscape.js","sourceRoot":"","sources":["../../../../../pipeline/src/bash/bashEscape.ts"],"names":[],"mappings":"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"}
|
|
@@ -309,7 +309,7 @@ export type BuildConfigGeneric<T extends BuildConfigStandaloneType> = Extract<Bu
|
|
|
309
309
|
type: T;
|
|
310
310
|
}>;
|
|
311
311
|
export declare const isStandaloneBuildConfig: (t: BuildConfig | false) => t is BuildConfigStandalone;
|
|
312
|
-
export declare const isOfBuildType: <T extends ("
|
|
312
|
+
export declare const isOfBuildType: <T extends ("custom" | "node" | "rails" | "node-static" | "storybook" | "meteor")[]>(t: BuildConfig, ...types: T) => t is Extract<BuildConfigNode, {
|
|
313
313
|
type: T[number];
|
|
314
314
|
}> | Extract<BuildConfigNodeStatic, {
|
|
315
315
|
type: T[number];
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getCatciGeneratedFiles = exports.GENERATED_CATCI_FOLDER = void 0;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
exports.GENERATED_CATCI_FOLDER = ".catladder-generated/catci";
|
|
10
|
+
/**
|
|
11
|
+
* the ncc-bundled catci (catladder's CI companion), shipped with the
|
|
12
|
+
* package. Built by the cli workspace (`scripts/bundle`); pipeline
|
|
13
|
+
* generation materializes it into `.catladder-generated/catci/` so CI
|
|
14
|
+
* jobs (e.g. the release job's security audit) can run it with plain
|
|
15
|
+
* `node` — no install step, no catladder baked into job images, and
|
|
16
|
+
* always the exact version that generated the pipeline.
|
|
17
|
+
*/
|
|
18
|
+
const getShippedCatciBundle = () => {
|
|
19
|
+
const candidates = [
|
|
20
|
+
// ncc bundle (what consumers run): dist/bundles/<entry> -> dist/bundles/catci
|
|
21
|
+
(0, path_1.join)(__dirname, "..", "catci", "index.js"),
|
|
22
|
+
// cli tsc dist (catenv-dev): dist/pipeline/src/catci -> dist/bundles/catci
|
|
23
|
+
(0, path_1.join)(__dirname, "..", "..", "..", "bundles", "catci", "index.js"),
|
|
24
|
+
// repository (pipeline/src/catci): <root>/cli/dist/bundles/catci
|
|
25
|
+
(0, path_1.join)(__dirname, "..", "..", "..", "cli", "dist", "bundles", "catci", "index.js")];
|
|
26
|
+
const found = candidates.find(candidate => (0, fs_1.existsSync)(candidate));
|
|
27
|
+
if (!found) {
|
|
28
|
+
throw new Error("shipped catci bundle not found — run a full catladder build (`yarn build`) first");
|
|
29
|
+
}
|
|
30
|
+
return found;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* the catci files to materialize into the generated folder
|
|
34
|
+
*/
|
|
35
|
+
const getCatciGeneratedFiles = () => [{
|
|
36
|
+
path: (0, path_1.join)(exports.GENERATED_CATCI_FOLDER, "index.js"),
|
|
37
|
+
content: (0, fs_1.readFileSync)(getShippedCatciBundle(), "utf-8")
|
|
38
|
+
}];
|
|
39
|
+
exports.getCatciGeneratedFiles = getCatciGeneratedFiles;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shippedCatci.js","sourceRoot":"","sources":["../../../../../pipeline/src/catci/shippedCatci.ts"],"names":[],"mappings":";;;AAAA,2BAA8C;AAC9C,+BAA4B;AAEf,QAAA,sBAAsB,GAAG,4BAA4B,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,qBAAqB,GAAG,GAAW,EAAE;IACzC,MAAM,UAAU,GAAG;QACjB,8EAA8E;QAC9E,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC;QAC1C,2EAA2E;QAC3E,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC;QACjE,iEAAiE;QACjE,IAAA,WAAI,EACF,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,MAAM,EACN,SAAS,EACT,OAAO,EACP,UAAU,CACX;KACF,CAAC;IACF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAA,eAAU,EAAC,SAAS,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;GAEG;AACI,MAAM,sBAAsB,GAAG,GAGnC,EAAE,CAAC;IACJ;QACE,IAAI,EAAE,IAAA,WAAI,EAAC,8BAAsB,EAAE,UAAU,CAAC;QAC9C,OAAO,EAAE,IAAA,iBAAY,EAAC,qBAAqB,EAAE,EAAE,OAAO,CAAC;KACxD;CACF,CAAC;AARW,QAAA,sBAAsB,0BAQjC"}
|
|
@@ -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 = "next-
|
|
7
|
+
exports.PIPELINE_IMAGE_TAG = "next-c177efda" || "latest";
|
|
8
8
|
exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || "git.panter.ch:5001/catladder/catladder";
|
|
@@ -17,7 +17,7 @@ export type SecretEnvVar = {
|
|
|
17
17
|
declare const getBasePredefinedVariables: (ctx: EnvironmentContext) => {
|
|
18
18
|
ENV_SHORT: string;
|
|
19
19
|
APP_DIR: string;
|
|
20
|
-
ENV_TYPE: "
|
|
20
|
+
ENV_TYPE: "stage" | "dev" | "review" | "prod" | "local";
|
|
21
21
|
};
|
|
22
22
|
type BasePredefinedVariables = ReturnType<typeof getBasePredefinedVariables>;
|
|
23
23
|
export type PredefinedVariables = BasePredefinedVariables & {
|
|
@@ -13,9 +13,11 @@ export declare const RUNNER_IMAGE_DEPENDENCIES: Partial<Record<RunnerImageName,
|
|
|
13
13
|
*/
|
|
14
14
|
/**
|
|
15
15
|
* images that cannot be built from the shipped definitions and always
|
|
16
|
-
* come from the central registry
|
|
17
|
-
*
|
|
18
|
-
*
|
|
16
|
+
* come from the central registry. Empty since the semantic-release
|
|
17
|
+
* image became self-contained (the security audit runs the
|
|
18
|
+
* materialized catci bundle instead of a baked-in catladder cli) —
|
|
19
|
+
* kept as the escape hatch should an image ever need central-only
|
|
20
|
+
* treatment again.
|
|
19
21
|
*/
|
|
20
22
|
export declare const CENTRAL_ONLY_IMAGES: ReadonlySet<RunnerImageName>;
|
|
21
23
|
export declare const RUNNER_IMAGE_BUILD_CONTEXT: Record<RunnerImageName, "root" | "self">;
|
|
@@ -23,11 +23,13 @@ exports.RUNNER_IMAGE_DEPENDENCIES = {
|
|
|
23
23
|
*/
|
|
24
24
|
/**
|
|
25
25
|
* images that cannot be built from the shipped definitions and always
|
|
26
|
-
* come from the central registry
|
|
27
|
-
*
|
|
28
|
-
*
|
|
26
|
+
* come from the central registry. Empty since the semantic-release
|
|
27
|
+
* image became self-contained (the security audit runs the
|
|
28
|
+
* materialized catci bundle instead of a baked-in catladder cli) —
|
|
29
|
+
* kept as the escape hatch should an image ever need central-only
|
|
30
|
+
* treatment again.
|
|
29
31
|
*/
|
|
30
|
-
exports.CENTRAL_ONLY_IMAGES = new Set(
|
|
32
|
+
exports.CENTRAL_ONLY_IMAGES = new Set();
|
|
31
33
|
exports.RUNNER_IMAGE_BUILD_CONTEXT = {
|
|
32
34
|
"jobs-default": "root",
|
|
33
35
|
"jobs-meteor": "root",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shippedImages.js","sourceRoot":"","sources":["../../../../../pipeline/src/customImages/shippedImages.ts"],"names":[],"mappings":";;;AAAA,2BAAgC;AAChC,+BAA4B;AAG5B;;;;GAIG;AACU,QAAA,yBAAyB,GAElC;IACF,aAAa,EAAE,CAAC,cAAc,CAAC;IAC/B,qBAAqB,EAAE,CAAC,cAAc,CAAC;CACxC,CAAC;AAEF;;;;;GAKG;AACH
|
|
1
|
+
{"version":3,"file":"shippedImages.js","sourceRoot":"","sources":["../../../../../pipeline/src/customImages/shippedImages.ts"],"names":[],"mappings":";;;AAAA,2BAAgC;AAChC,+BAA4B;AAG5B;;;;GAIG;AACU,QAAA,yBAAyB,GAElC;IACF,aAAa,EAAE,CAAC,cAAc,CAAC;IAC/B,qBAAqB,EAAE,CAAC,cAAc,CAAC;CACxC,CAAC;AAEF;;;;;GAKG;AACH;;;;;;;GAOG;AACU,QAAA,mBAAmB,GAAiC,IAAI,GAAG,EAAE,CAAC;AAE9D,QAAA,0BAA0B,GAGnC;IACF,cAAc,EAAE,MAAM;IACtB,aAAa,EAAE,MAAM;IACrB,qBAAqB,EAAE,MAAM;IAC7B,UAAU,EAAE,MAAM;IAClB,cAAc,EAAE,MAAM;IACtB,MAAM,EAAE,MAAM;IACd,kBAAkB,EAAE,MAAM;IAC1B,cAAc,EAAE,MAAM;CACvB,CAAC;AAEF;;;;GAIG;AACI,MAAM,mBAAmB,GAAG,GAAW,EAAE;IAC9C,MAAM,UAAU,GAAG;QACjB,kEAAkE;QAClE,qEAAqE;QACrE,wEAAwE;QACxE,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,eAAe,CAAC;QACtC,gEAAgE;QAChE,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC;KACnD,CAAC;IACF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAA,eAAU,EAAC,SAAS,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAdW,QAAA,mBAAmB,uBAc9B;AAEK,MAAM,kBAAkB,GAAG,CAAC,IAAqB,EAAU,EAAE,CAClE,IAAA,WAAI,EAAC,IAAA,2BAAmB,GAAE,EAAE,IAAI,CAAC,CAAC;AADvB,QAAA,kBAAkB,sBACK"}
|
|
@@ -11,7 +11,7 @@ export type DeployConfigType = DeployConfig["type"];
|
|
|
11
11
|
export type DeployConfigGeneric<T extends DeployConfigType> = Extract<DeployConfig, {
|
|
12
12
|
type: T;
|
|
13
13
|
}>;
|
|
14
|
-
export declare const isOfDeployType: <T extends ("custom" | "
|
|
14
|
+
export declare const isOfDeployType: <T extends ("custom" | "kubernetes" | "dockerTag" | "google-cloudrun")[]>(t: DeployConfig | false | null | undefined, ...types: T) => t is Extract<DeployConfigCustom, {
|
|
15
15
|
type: T[number];
|
|
16
16
|
}> | Extract<DeployConfigDockerTag, {
|
|
17
17
|
type: T[number];
|
|
@@ -20,4 +20,4 @@ export declare const isOfDeployType: <T extends ("custom" | "dockerTag" | "googl
|
|
|
20
20
|
}> | Extract<DeployConfigKubernetes, {
|
|
21
21
|
type: T[number];
|
|
22
22
|
}>;
|
|
23
|
-
export declare const getDeployConfigType: (t: DeployConfig | false | null | undefined) => "custom" | "
|
|
23
|
+
export declare const getDeployConfigType: (t: DeployConfig | false | null | undefined) => "custom" | "kubernetes" | "dockerTag" | "google-cloudrun";
|
|
@@ -9,6 +9,7 @@ const path_1 = require("path");
|
|
|
9
9
|
const backends_1 = require("../backends");
|
|
10
10
|
const gitlab_1 = require("../backends/gitlab");
|
|
11
11
|
const jobImagesPlan_1 = require("../customImages/jobImagesPlan");
|
|
12
|
+
const shippedCatci_1 = require("../catci/shippedCatci");
|
|
12
13
|
/**
|
|
13
14
|
* generates the pipeline files of all pipeline types enabled in the
|
|
14
15
|
* config (see `pipelines`). Pass an explicit `pipelineType` to generate
|
|
@@ -25,6 +26,11 @@ async function generatePipelineFiles(context, pipelineType) {
|
|
|
25
26
|
recursive: true,
|
|
26
27
|
force: true
|
|
27
28
|
});
|
|
29
|
+
// same for the materialized catci bundle (union across backends)
|
|
30
|
+
await (0, promises_1.rm)(shippedCatci_1.GENERATED_CATCI_FOLDER, {
|
|
31
|
+
recursive: true,
|
|
32
|
+
force: true
|
|
33
|
+
});
|
|
28
34
|
}
|
|
29
35
|
for (const type of pipelineTypes) {
|
|
30
36
|
await generatePipelineFilesForBackend(context, (0, backends_1.getPipelineBackend)(type));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePipelineFiles.js","sourceRoot":"","sources":["../../../../../pipeline/src/pipeline/generatePipelineFiles.ts"],"names":[],"mappings":";;;AAAA,0CAAwC;AACxC,+BAA+B;AAI/B,0CAA0E;AAC1E,+CAAmD;AAEnD,iEAAwE;
|
|
1
|
+
{"version":3,"file":"generatePipelineFiles.js","sourceRoot":"","sources":["../../../../../pipeline/src/pipeline/generatePipelineFiles.ts"],"names":[],"mappings":";;;AAAA,0CAAwC;AACxC,+BAA+B;AAI/B,0CAA0E;AAC1E,+CAAmD;AAEnD,iEAAwE;AACxE,wDAA+D;AAE/D;;;;GAIG;AACI,KAAK,UAAU,qBAAqB,CACzC,OAAsB,EACtB,YAA2B;IAE3B,MAAM,aAAa,GAAG,YAAY;QAChC,CAAC,CAAC,CAAC,YAAY,CAAC;QAChB,CAAC,CAAC,IAAA,kCAAuB,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,oEAAoE;QACpE,kEAAkE;QAClE,oEAAoE;QACpE,0CAA0C;QAC1C,MAAM,IAAA,aAAE,EAAC,uCAAuB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,iEAAiE;QACjE,MAAM,IAAA,aAAE,EAAC,qCAAsB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,+BAA+B,CAAC,OAAO,EAAE,IAAA,6BAAkB,EAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AArBD,sDAqBC;AAED,KAAK,UAAU,+BAA+B,CAC5C,OAAsB,EACtB,OAAwB;IAExB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAExD,4CAA4C;IAC5C,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxB,cAAc;IACd,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QACpC,MAAM,IAAA,gBAAK,EAAC,IAAA,cAAO,EAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,yBAAyB,CAAC,MAAc;IAC5D,OAAO,IAAI,sBAAa,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAC5D,CAAC;AAFD,8DAEC"}
|
|
@@ -36,11 +36,11 @@ export declare const ENV_TYPES: {
|
|
|
36
36
|
* @param trigger a trigger
|
|
37
37
|
* @returns array of env types for that trigger. this is also the list of default envs
|
|
38
38
|
*/
|
|
39
|
-
export declare const getEnvTypesByTrigger: (trigger: PipelineTrigger) => ("
|
|
39
|
+
export declare const getEnvTypesByTrigger: (trigger: PipelineTrigger) => ("stage" | "dev" | "review" | "prod" | "local")[];
|
|
40
40
|
export declare const DEFAULT_ENVS: string[];
|
|
41
|
-
export declare const DEFAULT_ENV_TYPES: ("
|
|
41
|
+
export declare const DEFAULT_ENV_TYPES: ("stage" | "dev" | "review" | "prod" | "local")[];
|
|
42
42
|
export type EnvType = keyof typeof ENV_TYPES;
|
|
43
|
-
export declare const isKnowEnvType: (env: string) => env is "
|
|
43
|
+
export declare const isKnowEnvType: (env: string) => env is "stage" | "dev" | "review" | "prod" | "local";
|
|
44
44
|
export type EnvVars = {
|
|
45
45
|
/**
|
|
46
46
|
* public env vars (means: they are checked in the repo).
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
# build context is the root directory
|
|
2
1
|
FROM node:lts-alpine
|
|
3
2
|
|
|
4
3
|
RUN apk add --no-cache bash git git-lfs
|
|
5
4
|
|
|
6
|
-
RUN mkdir /packages
|
|
7
|
-
COPY ./cli /packages/cli
|
|
8
|
-
|
|
9
5
|
# add semantic release
|
|
10
6
|
RUN yarn global add \
|
|
11
7
|
semantic-release@^19 \
|
|
@@ -14,11 +10,10 @@ RUN yarn global add \
|
|
|
14
10
|
https://github.com/panter/git.git#b4037626cc583d3e9f7995ea0604b23730d0a22e \
|
|
15
11
|
@semantic-release/changelog \
|
|
16
12
|
@semantic-release/gitlab@9 \
|
|
17
|
-
@semantic-release/exec@6
|
|
18
|
-
/packages/cli
|
|
13
|
+
@semantic-release/exec@6
|
|
19
14
|
|
|
20
15
|
RUN mkdir -p /scripts
|
|
21
|
-
COPY ./
|
|
16
|
+
COPY ./scripts/* /scripts/
|
|
22
17
|
RUN chmod +x /scripts/*
|
|
23
18
|
|
|
24
19
|
ENV PATH="/scripts:${PATH}"
|
|
@@ -9,7 +9,24 @@ set -e
|
|
|
9
9
|
# better branches settings: https://github.com/semantic-release/semantic-release/issues/1581
|
|
10
10
|
|
|
11
11
|
echo "doing security audit check"
|
|
12
|
-
catladder
|
|
12
|
+
CATCI=".catladder-generated/catci/index.js"
|
|
13
|
+
if [ -f "$CATCI" ]; then
|
|
14
|
+
# catci is materialized by pipeline generation — always the exact
|
|
15
|
+
# catladder version that generated this pipeline
|
|
16
|
+
if [ "$GITHUB_ACTIONS" = "true" ]; then
|
|
17
|
+
# github: gate only — the MR remediation is gitlab-specific
|
|
18
|
+
node "$CATCI" security-audit check ./
|
|
19
|
+
else
|
|
20
|
+
node "$CATCI" security-audit ci-job ./ "$GL_TOKEN" "$CI_DEFAULT_BRANCH" "$CI_PROJECT_ID" "$GITLAB_USER_ID"
|
|
21
|
+
fi
|
|
22
|
+
elif command -v catladder > /dev/null 2>&1; then
|
|
23
|
+
# repos generated by old catladder versions (no materialized catci):
|
|
24
|
+
# the central image still bakes the cli in
|
|
25
|
+
catladder security audit ci-job ./ "$GL_TOKEN" "$CI_DEFAULT_BRANCH" "$CI_PROJECT_ID" "$GITLAB_USER_ID"
|
|
26
|
+
else
|
|
27
|
+
echo "neither $CATCI nor the catladder cli found — regenerate the pipeline with a current catladder version (catenv)"
|
|
28
|
+
exit 1
|
|
29
|
+
fi
|
|
13
30
|
|
|
14
31
|
echo "doing semantic release"
|
|
15
32
|
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# LEGACY-COMPAT build of the semantic-release image for the CENTRAL
|
|
2
|
+
# registry only (build context: repo root, see .gitlab-ci-yaml-custom.yaml).
|
|
3
|
+
#
|
|
4
|
+
# The shipped definition (semantic-release/Dockerfile) is self-contained:
|
|
5
|
+
# repos generated by current catladder run the security audit via the
|
|
6
|
+
# materialized `.catladder-generated/catci/` bundle. But the central
|
|
7
|
+
# `:latest` tag is shared with repos on OLD catladder versions whose
|
|
8
|
+
# generated pipelines expect `catladder` on the PATH — so the central
|
|
9
|
+
# build additionally bakes the cli in, exactly as before.
|
|
10
|
+
#
|
|
11
|
+
# Delete together with the central registry / central mode.
|
|
12
|
+
FROM node:lts-alpine
|
|
13
|
+
|
|
14
|
+
RUN apk add --no-cache bash git git-lfs
|
|
15
|
+
|
|
16
|
+
RUN mkdir /packages
|
|
17
|
+
COPY ./cli /packages/cli
|
|
18
|
+
|
|
19
|
+
# add semantic release
|
|
20
|
+
RUN yarn global add \
|
|
21
|
+
semantic-release@^19 \
|
|
22
|
+
@semantic-release/commit-analyzer \
|
|
23
|
+
@semantic-release/release-notes-generator \
|
|
24
|
+
https://github.com/panter/git.git#b4037626cc583d3e9f7995ea0604b23730d0a22e \
|
|
25
|
+
@semantic-release/changelog \
|
|
26
|
+
@semantic-release/gitlab@9 \
|
|
27
|
+
@semantic-release/exec@6 \
|
|
28
|
+
/packages/cli
|
|
29
|
+
|
|
30
|
+
RUN mkdir -p /scripts
|
|
31
|
+
COPY ./runner-images/semantic-release/scripts/* /scripts/
|
|
32
|
+
RUN chmod +x /scripts/*
|
|
33
|
+
|
|
34
|
+
ENV PATH="/scripts:${PATH}"
|