@catladder/cli 5.0.1 → 5.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/apps/cli/src/apps/cli/commands/project/doctor/checkGithub.js +3 -3
- package/dist/apps/cli/src/apps/cli/commands/project/doctor/checkGithub.js.map +1 -1
- package/dist/apps/cli/src/apps/cli/commands/project/doctor/checkGithubImageCasing.d.ts +15 -0
- package/dist/apps/cli/src/apps/cli/commands/project/doctor/checkGithubImageCasing.js +60 -0
- package/dist/apps/cli/src/apps/cli/commands/project/doctor/checkGithubImageCasing.js.map +1 -0
- package/dist/apps/cli/src/apps/cli/commands/project/doctor/index.js +2 -0
- package/dist/apps/cli/src/apps/cli/commands/project/doctor/index.js.map +1 -1
- package/dist/apps/cli/src/apps/cli/commands/project/setup/setupAccessTokens.js +2 -2
- package/dist/apps/cli/src/apps/cli/commands/project/setup/setupAccessTokens.js.map +1 -1
- package/dist/apps/cli/src/apps/cli/commands/project/setup/setupGithub.js +2 -2
- package/dist/apps/cli/src/apps/cli/commands/project/setup/setupGithub.js.map +1 -1
- package/dist/apps/cli/src/apps/cli/commands/project/setup/setupKubernetes.js +23 -7
- package/dist/apps/cli/src/apps/cli/commands/project/setup/setupKubernetes.js.map +1 -1
- package/dist/apps/cli/src/commands/index.d.ts +1 -0
- package/dist/apps/cli/src/commands/index.js +4 -1
- package/dist/apps/cli/src/commands/index.js.map +1 -1
- package/dist/apps/cli/src/commands/project/commandConfigSecrets.js +2 -1
- package/dist/apps/cli/src/commands/project/commandConfigSecrets.js.map +1 -1
- package/dist/apps/cli/src/commands/project/commandMrPin.d.ts +21 -0
- package/dist/apps/cli/src/commands/project/commandMrPin.js +119 -0
- package/dist/apps/cli/src/commands/project/commandMrPin.js.map +1 -0
- package/dist/apps/cli/src/commands/project/commandSecretsSyncGithub.d.ts +1 -42
- package/dist/apps/cli/src/commands/project/commandSecretsSyncGithub.js +5 -124
- package/dist/apps/cli/src/commands/project/commandSecretsSyncGithub.js.map +1 -1
- package/dist/apps/cli/src/commands/project/secrets/commandSecretsPush.js +2 -1
- package/dist/apps/cli/src/commands/project/secrets/commandSecretsPush.js.map +1 -1
- package/dist/apps/cli/src/commands/project/secrets/commandSecretsSet.js +2 -2
- package/dist/apps/cli/src/commands/project/secrets/commandSecretsSet.js.map +1 -1
- package/dist/apps/cli/src/commands/project/secrets/document.d.ts +1 -12
- package/dist/apps/cli/src/commands/project/secrets/document.js +1 -79
- package/dist/apps/cli/src/commands/project/secrets/document.js.map +1 -1
- package/dist/apps/cli/src/gcloud/serviceAccounts.js +15 -4
- package/dist/apps/cli/src/gcloud/serviceAccounts.js.map +1 -1
- package/dist/apps/cli/src/secrets/github.d.ts +41 -0
- package/dist/apps/cli/src/secrets/github.js +127 -0
- package/dist/apps/cli/src/secrets/github.js.map +1 -0
- package/dist/apps/cli/src/secrets/index.d.ts +2 -0
- package/dist/apps/cli/src/secrets/index.js +19 -0
- package/dist/apps/cli/src/secrets/index.js.map +1 -0
- package/dist/apps/cli/src/secrets/writeSecrets.d.ts +18 -0
- package/dist/apps/cli/src/secrets/writeSecrets.js +88 -0
- package/dist/apps/cli/src/secrets/writeSecrets.js.map +1 -0
- package/dist/apps/cli/src/utils/github.js +2 -2
- package/dist/apps/cli/src/utils/github.js.map +1 -1
- package/dist/apps/cli/src/utils/gitlab.d.ts +10 -0
- package/dist/apps/cli/src/utils/gitlab.js +30 -5
- package/dist/apps/cli/src/utils/gitlab.js.map +1 -1
- package/dist/apps/cli/src/vault/BitwardenVault.d.ts +6 -0
- package/dist/apps/cli/src/vault/BitwardenVault.js +11 -1
- package/dist/apps/cli/src/vault/BitwardenVault.js.map +1 -1
- package/dist/apps/cli/src/vault/GitlabVault.d.ts +2 -2
- package/dist/apps/cli/src/vault/GitlabVault.js +3 -2
- package/dist/apps/cli/src/vault/GitlabVault.js.map +1 -1
- package/dist/apps/cli/src/vault/VaultManager.d.ts +2 -2
- package/dist/apps/cli/src/vault/VaultManager.js +2 -2
- package/dist/apps/cli/src/vault/VaultManager.js.map +1 -1
- package/dist/apps/cli/src/vault/types.d.ts +16 -2
- package/dist/bundles/catenv/index.js +265 -28
- package/dist/bundles/cli/index.js +851 -329
- package/dist/bundles/skills/catladder-cli/references/commands.md +13 -0
- package/dist/bundles/skills/catladder-config/SKILL.md +3 -1
- package/dist/bundles/skills/catladder-deploys/SKILL.md +7 -0
- package/dist/bundles/skills/catladder-migrate-ci-backend/SKILL.md +18 -2
- package/dist/bundles/skills/catladder-pipelines/SKILL.md +51 -1
- package/dist/bundles/skills/catladder-secrets/SKILL.md +16 -0
- package/dist/packages/pipeline/src/autoStop.d.ts +22 -0
- package/dist/packages/pipeline/src/autoStop.js +30 -0
- package/dist/packages/pipeline/src/autoStop.js.map +1 -0
- package/dist/packages/pipeline/src/backends/github/GithubBackend.js +11 -5
- package/dist/packages/pipeline/src/backends/github/GithubBackend.js.map +1 -1
- package/dist/packages/pipeline/src/backends/github/ciVariables.d.ts +13 -2
- package/dist/packages/pipeline/src/backends/github/ciVariables.js +18 -5
- package/dist/packages/pipeline/src/backends/github/ciVariables.js.map +1 -1
- package/dist/packages/pipeline/src/backends/github/createGithubJobs.js +1 -1
- package/dist/packages/pipeline/src/backends/github/createGithubJobs.js.map +1 -1
- package/dist/packages/pipeline/src/backends/github/ghcr.d.ts +29 -0
- package/dist/packages/pipeline/src/backends/github/ghcr.js +40 -0
- package/dist/packages/pipeline/src/backends/github/ghcr.js.map +1 -0
- package/dist/packages/pipeline/src/backends/github/index.d.ts +2 -0
- package/dist/packages/pipeline/src/backends/github/index.js +2 -0
- package/dist/packages/pipeline/src/backends/github/index.js.map +1 -1
- package/dist/packages/pipeline/src/backends/github/registryImage.d.ts +20 -0
- package/dist/packages/pipeline/src/backends/github/registryImage.js +49 -0
- package/dist/packages/pipeline/src/backends/github/registryImage.js.map +1 -0
- package/dist/packages/pipeline/src/backends/gitlab/GitlabBackend.js +2 -0
- package/dist/packages/pipeline/src/backends/gitlab/GitlabBackend.js.map +1 -1
- package/dist/packages/pipeline/src/backends/gitlab/createGitlabPipeline.d.ts +4 -1
- package/dist/packages/pipeline/src/backends/gitlab/createGitlabPipeline.js +21 -1
- package/dist/packages/pipeline/src/backends/gitlab/createGitlabPipeline.js.map +1 -1
- package/dist/packages/pipeline/src/customImages/jobImagesPlan.d.ts +15 -3
- package/dist/packages/pipeline/src/customImages/jobImagesPlan.js +14 -3
- package/dist/packages/pipeline/src/customImages/jobImagesPlan.js.map +1 -1
- package/dist/packages/pipeline/src/deploy/base/deploy.js +8 -2
- package/dist/packages/pipeline/src/deploy/base/deploy.js.map +1 -1
- package/dist/packages/pipeline/src/index.d.ts +1 -0
- package/dist/packages/pipeline/src/index.js +1 -0
- package/dist/packages/pipeline/src/index.js.map +1 -1
- package/dist/packages/pipeline/src/types/config.d.ts +44 -0
- package/dist/skills/catladder-cli/references/commands.md +13 -0
- package/dist/skills/catladder-config/SKILL.md +3 -1
- package/dist/skills/catladder-deploys/SKILL.md +7 -0
- package/dist/skills/catladder-migrate-ci-backend/SKILL.md +18 -2
- package/dist/skills/catladder-pipelines/SKILL.md +51 -1
- package/dist/skills/catladder-secrets/SKILL.md +16 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/apps/cli/commands/project/doctor/checkGithub.ts +1 -1
- package/src/apps/cli/commands/project/doctor/checkGithubImageCasing.ts +87 -0
- package/src/apps/cli/commands/project/doctor/index.ts +2 -0
- package/src/apps/cli/commands/project/setup/setupAccessTokens.ts +3 -2
- package/src/apps/cli/commands/project/setup/setupGithub.ts +1 -1
- package/src/apps/cli/commands/project/setup/setupKubernetes.ts +31 -20
- package/src/commands/index.ts +1 -0
- package/src/commands/project/commandConfigSecrets.ts +1 -1
- package/src/commands/project/commandMrPin.ts +184 -0
- package/src/commands/project/commandSecretsSyncGithub.ts +7 -154
- package/src/commands/project/secrets/commandSecretsPush.ts +2 -5
- package/src/commands/project/secrets/commandSecretsSet.ts +2 -2
- package/src/commands/project/secrets/document.ts +2 -127
- package/src/gcloud/serviceAccounts.ts +16 -7
- package/src/secrets/__tests__/writeSecrets.test.ts +147 -0
- package/src/secrets/github.ts +157 -0
- package/src/secrets/index.ts +2 -0
- package/src/secrets/writeSecrets.ts +138 -0
- package/src/utils/github.ts +2 -4
- package/src/utils/gitlab.ts +34 -7
- package/src/vault/BitwardenVault.ts +10 -1
- package/src/vault/GitlabVault.ts +9 -2
- package/src/vault/VaultManager.ts +3 -2
- package/src/vault/__tests__/BitwardenVault.test.ts +88 -0
- package/src/vault/types.ts +17 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveGithubRegistryImage = exports.githubRegistryImageFromConfig = void 0;
|
|
4
|
+
const child_process_1 = require("child_process");
|
|
5
|
+
const util_1 = require("util");
|
|
6
|
+
const index_1 = require("../index");
|
|
7
|
+
const ghcr_1 = require("./ghcr");
|
|
8
|
+
const execFile = (0, util_1.promisify)(child_process_1.execFile);
|
|
9
|
+
/**
|
|
10
|
+
* the ghcr image prefix derived from the config alone
|
|
11
|
+
* (`pipelines.github.repository`), without touching git.
|
|
12
|
+
*
|
|
13
|
+
* Used where generation must stay pure and hermetic (tests, examples);
|
|
14
|
+
* {@link resolveGithubRegistryImage} adds the git remote fallback.
|
|
15
|
+
*/
|
|
16
|
+
const githubRegistryImageFromConfig = (config) => {
|
|
17
|
+
const { repository } = (0, index_1.getPipelineOptions)(config, "github");
|
|
18
|
+
return repository ? (0, ghcr_1.toGhcrRegistryImage)(repository) : undefined;
|
|
19
|
+
};
|
|
20
|
+
exports.githubRegistryImageFromConfig = githubRegistryImageFromConfig;
|
|
21
|
+
/**
|
|
22
|
+
* the ghcr image prefix to generate with: the configured repository, or
|
|
23
|
+
* the one the github git remote points at.
|
|
24
|
+
*
|
|
25
|
+
* Falls back to the `${{ github.repository }}` expression when the
|
|
26
|
+
* remote is unavailable (a checkout without the remote, a tarball, …).
|
|
27
|
+
* That is the pre-existing behavior and correct for every all-lowercase
|
|
28
|
+
* repository; `project doctor` catches the mixed-case case it is not
|
|
29
|
+
* correct for.
|
|
30
|
+
*/
|
|
31
|
+
const resolveGithubRegistryImage = async (config) => {
|
|
32
|
+
const fromConfig = (0, exports.githubRegistryImageFromConfig)(config);
|
|
33
|
+
if (fromConfig) {
|
|
34
|
+
return fromConfig;
|
|
35
|
+
}
|
|
36
|
+
const remote = (0, index_1.getPipelineGitRemote)(config, "github");
|
|
37
|
+
try {
|
|
38
|
+
const { stdout } = await execFile("git", ["remote", "get-url", remote]);
|
|
39
|
+
const repository = (0, ghcr_1.parseGithubRepoFromRemoteUrl)(stdout);
|
|
40
|
+
return repository
|
|
41
|
+
? (0, ghcr_1.toGhcrRegistryImage)(repository)
|
|
42
|
+
: ghcr_1.GHCR_REPOSITORY_EXPRESSION;
|
|
43
|
+
}
|
|
44
|
+
catch (_a) {
|
|
45
|
+
return ghcr_1.GHCR_REPOSITORY_EXPRESSION;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
exports.resolveGithubRegistryImage = resolveGithubRegistryImage;
|
|
49
|
+
//# sourceMappingURL=registryImage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registryImage.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/github/registryImage.ts"],"names":[],"mappings":";;;AAAA,iDAAuD;AACvD,+BAAiC;AAEjC,oCAAoE;AACpE,iCAIgB;AAEhB,MAAM,QAAQ,GAAG,IAAA,gBAAS,EAAC,wBAAU,CAAC,CAAC;AAEvC;;;;;;GAMG;AACI,MAAM,6BAA6B,GAAG,CAC3C,MAAc,EACM,EAAE;IACtB,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,0BAAkB,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5D,OAAO,UAAU,CAAC,CAAC,CAAC,IAAA,0BAAmB,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC,CAAC;AALW,QAAA,6BAA6B,iCAKxC;AAEF;;;;;;;;;GASG;AACI,MAAM,0BAA0B,GAAG,KAAK,EAC7C,MAAc,EACG,EAAE;IACnB,MAAM,UAAU,GAAG,IAAA,qCAA6B,EAAC,MAAM,CAAC,CAAC;IACzD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,MAAM,GAAG,IAAA,4BAAoB,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,IAAA,mCAA4B,EAAC,MAAM,CAAC,CAAC;QACxD,OAAO,UAAU;YACf,CAAC,CAAC,IAAA,0BAAmB,EAAC,UAAU,CAAC;YACjC,CAAC,CAAC,iCAA0B,CAAC;IACjC,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,iCAA0B,CAAC;IACpC,CAAC;AACH,CAAC,CAAC;AAjBW,QAAA,0BAA0B,8BAiBrC"}
|
|
@@ -4,6 +4,7 @@ exports.GitlabBackend = void 0;
|
|
|
4
4
|
const promises_1 = require("fs/promises");
|
|
5
5
|
const rules_1 = require("../../rules");
|
|
6
6
|
const config_1 = require("../../types/config");
|
|
7
|
+
const autoStop_1 = require("../../autoStop");
|
|
7
8
|
const createAllJobs_1 = require("../../pipeline/createAllJobs");
|
|
8
9
|
const jobImagesPlan_1 = require("../../customImages/jobImagesPlan");
|
|
9
10
|
const shippedCatci_1 = require("../../catci/shippedCatci");
|
|
@@ -189,6 +190,7 @@ class GitlabBackend {
|
|
|
189
190
|
// per-pipeline-type variables (pipelines.gitlab.runnerVariables)
|
|
190
191
|
...(0, index_1.getPipelineOptions)(config, this.type).runnerVariables,
|
|
191
192
|
},
|
|
193
|
+
autoStop: (0, autoStop_1.getAutoStopConfig)(config),
|
|
192
194
|
});
|
|
193
195
|
}
|
|
194
196
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitlabBackend.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/gitlab/GitlabBackend.ts"],"names":[],"mappings":";;;AAAA,0CAA2C;AAC3C,uCAKqB;AAUrB,+CAA2D;AAC3D,gEAA6D;AAC7D,oEAAiE;AACjE,2DAAkE;AAClE,2CAAiD;AAEjD,oCAA8C;AAE9C,yDAAsD;AACtD,iEAA0E;AAC1E,2DAA2D;AAC3D,2DAAwD;AACxD,uDAA2D;AAC3D,mEAAgE;AAChE,uDAA+D;AAE/D,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AAE1D,MAAM,uBAAuB,GAAG,0BAA0B,GAAG,SAAS,CAAC;AAEvE,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAE1C,MAAa,aAAa;IAA1B;QACW,SAAI,GAAG,QAAiB,CAAC;QAEzB,oBAAe,GAAG,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"GitlabBackend.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/gitlab/GitlabBackend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type { Pipeline } from "../../types";
|
|
2
|
+
import { type ResolvedAutoStopConfig } from "../../autoStop";
|
|
2
3
|
type PickRequired<T, K extends keyof T> = Required<Pick<T, K>> & Omit<T, K>;
|
|
3
|
-
export declare const createGitlabPipelineWithDefaults: ({ image, variables, before_script, ...config }: PickRequired<Partial<Pipeline<"gitlab">>, "stages" | "jobs">
|
|
4
|
+
export declare const createGitlabPipelineWithDefaults: ({ image, variables, before_script, autoStop, ...config }: PickRequired<Partial<Pipeline<"gitlab">>, "stages" | "jobs"> & {
|
|
5
|
+
autoStop?: ResolvedAutoStopConfig;
|
|
6
|
+
}) => Pipeline<"gitlab">;
|
|
4
7
|
export {};
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createGitlabPipelineWithDefaults = void 0;
|
|
4
4
|
const bash_1 = require("../../../../bash/src/index.js");
|
|
5
|
+
const autoStop_1 = require("../../autoStop");
|
|
5
6
|
const rules_1 = require("../../rules");
|
|
6
7
|
/**
|
|
7
8
|
* gitlab requires a top-level default image for jobs that don't set their
|
|
@@ -10,7 +11,8 @@ const rules_1 = require("../../rules");
|
|
|
10
11
|
* build-free image (a catladder job image would drag in a build job).
|
|
11
12
|
*/
|
|
12
13
|
const DEFAULT_PIPELINE_IMAGE = "node:22";
|
|
13
|
-
const createGitlabPipelineWithDefaults = ({ image, variables, before_script, ...config }) => {
|
|
14
|
+
const createGitlabPipelineWithDefaults = ({ image, variables, before_script, autoStop, ...config }) => {
|
|
15
|
+
const pinLabel = autoStop && autoStop.pinLabel;
|
|
14
16
|
return {
|
|
15
17
|
image: image !== null && image !== void 0 ? image : DEFAULT_PIPELINE_IMAGE,
|
|
16
18
|
variables: {
|
|
@@ -19,6 +21,10 @@ const createGitlabPipelineWithDefaults = ({ image, variables, before_script, ...
|
|
|
19
21
|
CACHE_COMPRESSION_LEVEL: "fast", // same as above, but for caches
|
|
20
22
|
TRANSFER_METER_FREQUENCY: "5s", // how often we should update the transfer meter for cache upload/download
|
|
21
23
|
GIT_DEPTH: "1", // no need the full depth
|
|
24
|
+
// review env lifetime — the pin-label workflow rule below
|
|
25
|
+
// overrides this to "never" (workflow rule variables take
|
|
26
|
+
// precedence over pipeline-level variables)
|
|
27
|
+
...(pinLabel ? { [autoStop_1.REVIEW_AUTO_STOP_VARIABLE]: autoStop.review } : {}),
|
|
22
28
|
...(variables !== null && variables !== void 0 ? variables : {}),
|
|
23
29
|
},
|
|
24
30
|
before_script: [
|
|
@@ -35,6 +41,20 @@ const createGitlabPipelineWithDefaults = ({ image, variables, before_script, ...
|
|
|
35
41
|
PIPELINE_NAME: "Thinking...",
|
|
36
42
|
},
|
|
37
43
|
},
|
|
44
|
+
// pinned MRs (rules stop at the first match, so this must come
|
|
45
|
+
// before the plain merge-request rule)
|
|
46
|
+
...(pinLabel
|
|
47
|
+
? [
|
|
48
|
+
{
|
|
49
|
+
if: `${rules_1.RULE_IS_MERGE_REQUEST.if} && $CI_MERGE_REQUEST_LABELS =~ /${(0, autoStop_1.getPinLabelRegexSource)(pinLabel)}/`,
|
|
50
|
+
variables: {
|
|
51
|
+
PIPELINE_ICON: "🐱📌",
|
|
52
|
+
PIPELINE_NAME: "mr$CI_MERGE_REQUEST_IID - $CI_MERGE_REQUEST_TITLE",
|
|
53
|
+
[autoStop_1.REVIEW_AUTO_STOP_VARIABLE]: "never",
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
]
|
|
57
|
+
: []),
|
|
38
58
|
{
|
|
39
59
|
if: rules_1.RULE_IS_MERGE_REQUEST.if,
|
|
40
60
|
variables: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createGitlabPipeline.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/gitlab/createGitlabPipeline.ts"],"names":[],"mappings":";;;AACA,0CAAwD;AACxD,uCAIqB;AAGrB;;;;;GAKG;AACH,MAAM,sBAAsB,GAAG,SAAS,CAAC;AAElC,MAAM,gCAAgC,GAAG,CAAC,EAC/C,KAAK,EACL,SAAS,EACT,aAAa,EACb,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"createGitlabPipeline.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/gitlab/createGitlabPipeline.ts"],"names":[],"mappings":";;;AACA,0CAAwD;AACxD,6CAIwB;AACxB,uCAIqB;AAGrB;;;;;GAKG;AACH,MAAM,sBAAsB,GAAG,SAAS,CAAC;AAElC,MAAM,gCAAgC,GAAG,CAAC,EAC/C,KAAK,EACL,SAAS,EACT,aAAa,EACb,QAAQ,EACR,GAAG,MAAM,EAGV,EAAsB,EAAE;IACvB,MAAM,QAAQ,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC;IAC/C,OAAO;QACL,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,sBAAsB;QACtC,SAAS,EAAE;YACT,cAAc,EAAE,MAAM,EAAE,uFAAuF;YAC/G,0BAA0B,EAAE,MAAM,EAAE,kCAAkC;YACtE,uBAAuB,EAAE,MAAM,EAAE,gCAAgC;YACjE,wBAAwB,EAAE,IAAI,EAAE,0EAA0E;YAE1G,SAAS,EAAE,GAAG,EAAE,yBAAyB;YACzC,0DAA0D;YAC1D,0DAA0D;YAC1D,4CAA4C;YAC5C,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,oCAAyB,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC;SACrB;QACD,aAAa,EAAE;YACb,GAAG,CAAC,GAAG,4BAAqB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACpD,MAAM,CAAC,cAAc,EAAE,CACxB;YACD,GAAG,CAAC,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,EAAE,CAAC;SACzB;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,+BAA+B;YACrC,KAAK,EAAE;gBACL;oBACE,EAAE,EAAE,mCAAmC;oBACvC,SAAS,EAAE;wBACT,aAAa,EAAE,IAAI;wBACnB,aAAa,EAAE,aAAa;qBAC7B;iBACF;gBACD,+DAA+D;gBAC/D,uCAAuC;gBACvC,GAAG,CAAC,QAAQ;oBACV,CAAC,CAAC;wBACE;4BACE,EAAE,EAAE,GAAG,6BAAqB,CAAC,EAAE,oCAAoC,IAAA,iCAAsB,EAAC,QAAQ,CAAC,GAAG;4BACtG,SAAS,EAAE;gCACT,aAAa,EAAE,MAAM;gCACrB,aAAa,EACX,mDAAmD;gCACrD,CAAC,oCAAyB,CAAC,EAAE,OAAO;6BACrC;yBACF;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP;oBACE,EAAE,EAAE,6BAAqB,CAAC,EAAE;oBAC5B,SAAS,EAAE;wBACT,aAAa,EAAE,MAAM;wBACrB,aAAa,EAAE,mDAAmD;qBACnE;iBACF;gBACD;oBACE,EAAE,EAAE,8BAAsB,CAAC,EAAE;oBAC7B,SAAS,EAAE;wBACT,aAAa,EAAE,MAAM;wBACrB,aAAa,EAAE,wBAAwB;qBACxC;iBACF;gBACD;oBACE,EAAE,EAAE,kDAA0C,CAAC,EAAE;oBACjD,SAAS,EAAE;wBACT,aAAa,EAAE,MAAM;wBACrB,aAAa,EAAE,yBAAyB;qBACzC;iBACF;gBAED;oBACE,IAAI,EAAE,QAAQ,EAAE,WAAW;oBAC3B,SAAS,EAAE;wBACT,aAAa,EAAE,KAAK;wBACpB,aAAa,EAAE,SAAS;qBACzB;iBACF;aACF;SACF;QAED,GAAG,MAAM;KACV,CAAC;AACJ,CAAC,CAAC;AA1FW,QAAA,gCAAgC,oCA0F3C"}
|
|
@@ -32,9 +32,21 @@ export declare const PROJECT_IMAGES_FOLDER = ".catladder-generated/images/projec
|
|
|
32
32
|
export declare class JobImagesPlan {
|
|
33
33
|
private readonly pipelineType;
|
|
34
34
|
private readonly projectImages;
|
|
35
|
+
/**
|
|
36
|
+
* the registry image prefix to generate with, overriding the
|
|
37
|
+
* pipeline type's default. On github this carries the lowercased
|
|
38
|
+
* ghcr namespace (see `resolveGithubRegistryImage`).
|
|
39
|
+
*/
|
|
40
|
+
private readonly registryImage?;
|
|
35
41
|
private used;
|
|
36
42
|
private usedProject;
|
|
37
|
-
constructor(pipelineType: PipelineType, projectImages?: Record<string, ProjectImageConfig
|
|
43
|
+
constructor(pipelineType: PipelineType, projectImages?: Record<string, ProjectImageConfig>,
|
|
44
|
+
/**
|
|
45
|
+
* the registry image prefix to generate with, overriding the
|
|
46
|
+
* pipeline type's default. On github this carries the lowercased
|
|
47
|
+
* ghcr namespace (see `resolveGithubRegistryImage`).
|
|
48
|
+
*/
|
|
49
|
+
registryImage?: string);
|
|
38
50
|
/**
|
|
39
51
|
* resolves a job image (marker or concrete) to a concrete image url
|
|
40
52
|
* plus the build job dependency
|
|
@@ -48,9 +60,9 @@ export declare class JobImagesPlan {
|
|
|
48
60
|
resolveProjectRef(ref: ProjectImageRef): ResolvedJobImage;
|
|
49
61
|
/**
|
|
50
62
|
* the registry image prefix. On github, container images can't use
|
|
51
|
-
* runtime env vars —
|
|
63
|
+
* runtime env vars — a literal or an actions expression is required.
|
|
52
64
|
*/
|
|
53
|
-
|
|
65
|
+
registryImageRef(): string;
|
|
54
66
|
private useProject;
|
|
55
67
|
/**
|
|
56
68
|
* the source-dependent half of a project image: an inline Dockerfile
|
|
@@ -4,6 +4,7 @@ exports.JobImagesPlan = exports.PROJECT_IMAGES_FOLDER = exports.GENERATED_IMAGES
|
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const path_1 = require("path");
|
|
6
6
|
const ciVariables_1 = require("../bash/ciVariables");
|
|
7
|
+
const ghcr_1 = require("../backends/github/ghcr");
|
|
7
8
|
const docker_1 = require("../build/docker");
|
|
8
9
|
const runner_1 = require("../runner");
|
|
9
10
|
const gitlab_1 = require("../utils/gitlab");
|
|
@@ -64,9 +65,16 @@ exports.PROJECT_IMAGES_FOLDER = `${exports.GENERATED_IMAGES_FOLDER}/project`;
|
|
|
64
65
|
* Reference-driven: only images actually used by a job are built.
|
|
65
66
|
*/
|
|
66
67
|
class JobImagesPlan {
|
|
67
|
-
constructor(pipelineType, projectImages = {}
|
|
68
|
+
constructor(pipelineType, projectImages = {},
|
|
69
|
+
/**
|
|
70
|
+
* the registry image prefix to generate with, overriding the
|
|
71
|
+
* pipeline type's default. On github this carries the lowercased
|
|
72
|
+
* ghcr namespace (see `resolveGithubRegistryImage`).
|
|
73
|
+
*/
|
|
74
|
+
registryImage) {
|
|
68
75
|
this.pipelineType = pipelineType;
|
|
69
76
|
this.projectImages = projectImages;
|
|
77
|
+
this.registryImage = registryImage;
|
|
70
78
|
this.used = new Map();
|
|
71
79
|
this.usedProject = new Map();
|
|
72
80
|
}
|
|
@@ -91,11 +99,14 @@ class JobImagesPlan {
|
|
|
91
99
|
}
|
|
92
100
|
/**
|
|
93
101
|
* the registry image prefix. On github, container images can't use
|
|
94
|
-
* runtime env vars —
|
|
102
|
+
* runtime env vars — a literal or an actions expression is required.
|
|
95
103
|
*/
|
|
96
104
|
registryImageRef() {
|
|
105
|
+
if (this.registryImage) {
|
|
106
|
+
return this.registryImage;
|
|
107
|
+
}
|
|
97
108
|
return this.pipelineType === "github"
|
|
98
|
-
?
|
|
109
|
+
? ghcr_1.GHCR_REPOSITORY_EXPRESSION
|
|
99
110
|
: `${(0, ciVariables_1.getCiVariable)({ pipelineType: this.pipelineType }, "registryImage")}`;
|
|
100
111
|
}
|
|
101
112
|
useProject(name) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobImagesPlan.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/customImages/jobImagesPlan.ts"],"names":[],"mappings":";;;AAAA,2BAAqE;AACrE,+BAA4B;AAC5B,qDAAoD;AACpD,4CAAwD;AAExD,sCAAgD;AAGhD,4CAAsD;AACtD,iCAAwE;AAExE,mDAAoD;AACpD,mDAIyB;AAEZ,QAAA,uBAAuB,GAAG,6BAA6B,CAAC;AAErE;;;GAGG;AACH,MAAM,aAAa,GAAG,yBAAyB,CAAC;AAyChD;;;GAGG;AACH,MAAM,kBAAkB,GAAG,CAAC,EAC1B,QAAQ,EACR,OAAO,GACM,EAAoB,EAAE,CAAC,CAAC;IACrC,KAAK,EAAE,QAAQ;IACf,gBAAgB,EAAE,IAAI;IACtB,IAAI,EAAE;QACJ,GAAG,EAAE,OAAO;QACZ,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;KACb;CACF,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,cAAc,GAAG,CACrB,SAAiB,EACjB,SAAiB,EACK,EAAE,CACxB,kBAAkB,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC3C,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,CAAC;IAC3B,OAAO,EAAE,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC;CACtD,CAAC,CAAC,CAAC;AAEN,oEAAoE;AACpE,mEAAmE;AACnE,MAAM,aAAa,GAAG,CAAC,IAAqB,EAAE,EAAE,CAAC,sBAAsB,IAAI,EAAE,CAAC;AAC9E,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC;AAElE;;;;;GAKG;AACH,MAAM,WAAW,GAAG,cAAc,CAAC;AAEnC;;;GAGG;AACU,QAAA,qBAAqB,GAAG,GAAG,+BAAuB,UAAU,CAAC;AAE1E;;;;;;;;GAQG;AACH,MAAa,aAAa;IAIxB,YACmB,YAA0B,EAC1B,gBAAoD,EAAE;
|
|
1
|
+
{"version":3,"file":"jobImagesPlan.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/customImages/jobImagesPlan.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ const docker_1 = require("../../build/docker");
|
|
|
5
5
|
const context_1 = require("../../types/context");
|
|
6
6
|
const jobs_1 = require("../../types/jobs");
|
|
7
7
|
const utils_1 = require("../utils");
|
|
8
|
+
const autoStop_1 = require("../../autoStop");
|
|
8
9
|
const stop_1 = require("./stop");
|
|
9
10
|
const variables_1 = require("./variables");
|
|
10
11
|
exports.DEPLOY_JOB_NAME = "🚀 Deploy";
|
|
@@ -13,10 +14,15 @@ class DeployJob extends jobs_1.CatladderJob {
|
|
|
13
14
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
14
15
|
const hasDocker = (0, docker_1.requiresDockerBuild)(context);
|
|
15
16
|
const isStoppable = (0, utils_1.contextIsStoppable)(context);
|
|
17
|
+
const autoStopConfig = (0, autoStop_1.getAutoStopConfig)(context.fullConfig);
|
|
16
18
|
const autoStop = context.environment.envType === "review"
|
|
17
|
-
?
|
|
19
|
+
? // review envs read the lifetime from a pipeline variable, so
|
|
20
|
+
// the pin label's workflow rule can override it to "never"
|
|
21
|
+
autoStopConfig.pinLabel === false
|
|
22
|
+
? autoStopConfig.review
|
|
23
|
+
: `$${autoStop_1.REVIEW_AUTO_STOP_VARIABLE}`
|
|
18
24
|
: context.environment.envType === "dev"
|
|
19
|
-
?
|
|
25
|
+
? autoStopConfig.dev
|
|
20
26
|
: undefined;
|
|
21
27
|
const deployConfig = (_a = context.deploy) === null || _a === void 0 ? void 0 : _a.config;
|
|
22
28
|
// if auto or manual is configured explicitly, use that
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/base/deploy.ts"],"names":[],"mappings":";;;AAAA,+CAG4B;AAE5B,iDAG6B;AAE7B,2CAAgD;AAChD,oCAA8C;AAC9C,iCAAuC;AAEvC,2CAAsD;AAEzC,QAAA,eAAe,GAAG,WAAW,CAAC;AAE3C,MAAa,SAAU,SAAQ,mBAAY;IACzC,YAAY,OAAyB,EAAE,aAAkC;;QACvE,MAAM,SAAS,GAAG,IAAA,4BAAmB,EAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,IAAA,0BAAkB,EAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,QAAQ,GACZ,OAAO,CAAC,WAAW,CAAC,OAAO,KAAK,QAAQ;YACtC,CAAC,CAAC,QAAQ;
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/base/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./pipeline"), exports);
|
|
18
|
+
__exportStar(require("./autoStop"), exports);
|
|
18
19
|
__exportStar(require("./backends"), exports);
|
|
19
20
|
__exportStar(require("./types"), exports);
|
|
20
21
|
__exportStar(require("./rules"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pipeline/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,6CAA2B;AAC3B,0CAAwB;AACxB,0CAAwB;AACxB,2CAAyB;AACzB,+DAA6C;AAC7C,+DAA6C;AAC7C,2CAAyB;AACzB,0CAAwB;AACxB,4CAA0B;AAC1B,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,qDAAmC;AACnC,sDAAoC;AACpC,kDAAgC;AAChC,2CAAyB;AACzB,gDAA8B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pipeline/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,6CAA2B;AAC3B,6CAA2B;AAC3B,0CAAwB;AACxB,0CAAwB;AACxB,2CAAyB;AACzB,+DAA6C;AAC7C,+DAA6C;AAC7C,2CAAyB;AACzB,0CAAwB;AACxB,4CAA0B;AAC1B,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,qDAAmC;AACnC,sDAAoC;AACpC,kDAAgC;AAChC,2CAAyB;AACzB,gDAA8B"}
|
|
@@ -197,6 +197,18 @@ export type PipelineOutputOptions = {
|
|
|
197
197
|
* defaults to "origin"
|
|
198
198
|
*/
|
|
199
199
|
gitRemote?: string;
|
|
200
|
+
/**
|
|
201
|
+
* github only: the `owner/name` of the github repository.
|
|
202
|
+
*
|
|
203
|
+
* Only needed when catladder cannot resolve it from the git remote at
|
|
204
|
+
* generation time (a checkout without the remote, a tarball, …) and
|
|
205
|
+
* the name contains an uppercase character: ghcr image paths must be
|
|
206
|
+
* lowercase, so a mixed-case repository can't use github's
|
|
207
|
+
* `${{ github.repository }}` context and needs a literal instead.
|
|
208
|
+
*
|
|
209
|
+
* @example "AcmeCorp/nautilus"
|
|
210
|
+
*/
|
|
211
|
+
repository?: string;
|
|
200
212
|
/**
|
|
201
213
|
* variables applied to every job of THIS pipeline type only —
|
|
202
214
|
* lowered to gitlab's pipeline-level `variables:` / github's
|
|
@@ -313,6 +325,38 @@ export type Config<C extends ConfigProps = never> = {
|
|
|
313
325
|
meta?: {
|
|
314
326
|
labels?: Record<string, string>;
|
|
315
327
|
};
|
|
328
|
+
/**
|
|
329
|
+
* auto-stop of non-production environments (gitlab only): review
|
|
330
|
+
* environments stop automatically after `review` (default "1 week"),
|
|
331
|
+
* dev environments after `dev` (default "4 weeks"). Merging or
|
|
332
|
+
* closing the MR always stops its review environments, independent of
|
|
333
|
+
* these timers.
|
|
334
|
+
*
|
|
335
|
+
* `pinLabel` names the merge-request label that pins an MR's review
|
|
336
|
+
* apps: while the label is set, review deploys use
|
|
337
|
+
* `auto_stop_in: never`, so the apps outlive the timer until the MR
|
|
338
|
+
* is merged or closed. Apply it with `catladder mr pin` (or add the
|
|
339
|
+
* label manually) — it takes effect from the next pipeline of the MR.
|
|
340
|
+
*/
|
|
341
|
+
autoStop?: {
|
|
342
|
+
/**
|
|
343
|
+
* lifetime of review environments, in gitlab natural language
|
|
344
|
+
* (e.g. "3 days") or "never"
|
|
345
|
+
* @defaultValue "1 week"
|
|
346
|
+
*/
|
|
347
|
+
review?: string;
|
|
348
|
+
/**
|
|
349
|
+
* lifetime of dev environments
|
|
350
|
+
* @defaultValue "4 weeks"
|
|
351
|
+
*/
|
|
352
|
+
dev?: string;
|
|
353
|
+
/**
|
|
354
|
+
* the merge-request label that pins review apps, or `false` to
|
|
355
|
+
* disable the pin mechanism
|
|
356
|
+
* @defaultValue "catladder::pin-review"
|
|
357
|
+
*/
|
|
358
|
+
pinLabel?: string | false;
|
|
359
|
+
};
|
|
316
360
|
/**
|
|
317
361
|
* additional vars only for the runner in all jobs.
|
|
318
362
|
*/
|
|
@@ -79,6 +79,19 @@ trigger cronjob
|
|
|
79
79
|
- `namespace` (positional): kubernetes namespace
|
|
80
80
|
- `--job-name <value>`: Which cronjob?
|
|
81
81
|
|
|
82
|
+
## `catladder mr pin [mr]`
|
|
83
|
+
|
|
84
|
+
pin the review apps of a merge request (disable their auto-stop) by adding the pin label; merging or closing the MR still stops them
|
|
85
|
+
|
|
86
|
+
- `mr` (positional): merge request IID (defaults to the open MR of the current branch)
|
|
87
|
+
- `--pipeline`: trigger a merge-request pipeline so the pin takes effect immediately
|
|
88
|
+
|
|
89
|
+
## `catladder mr unpin [mr]`
|
|
90
|
+
|
|
91
|
+
unpin the review apps of a merge request — the auto-stop timer re-arms with the next deploy
|
|
92
|
+
|
|
93
|
+
- `mr` (positional): merge request IID (defaults to the open MR of the current branch)
|
|
94
|
+
|
|
82
95
|
## `catladder project ci job-log`
|
|
83
96
|
|
|
84
97
|
Show a job's log
|
|
@@ -63,7 +63,9 @@ Key concepts:
|
|
|
63
63
|
deploy settings, and more.
|
|
64
64
|
- **Pipelines**: `pipelines: { gitlab: true, github: true }` selects
|
|
65
65
|
which CI systems get generated files. Options objects instead of
|
|
66
|
-
`true` allow per-pipeline settings (e.g. `runnerVariables
|
|
66
|
+
`true` allow per-pipeline settings (e.g. `runnerVariables`,
|
|
67
|
+
`gitRemote`, and `repository` — GitHub only, for lowercasing GHCR
|
|
68
|
+
image paths; see the `catladder-pipelines` skill).
|
|
67
69
|
- **Package manager**: yarn and pnpm are supported and autodetected
|
|
68
70
|
(from the `packageManager` field in package.json or the lockfile;
|
|
69
71
|
yarn is the fallback). `packageManager: "pnpm" | "yarn"` at the top
|
|
@@ -46,6 +46,13 @@ is `auto`.** Set per component or per environment (`env.<name>.deploy`).
|
|
|
46
46
|
`waitFor: ["otherComponent"]` (experimental) makes a deploy wait for
|
|
47
47
|
another component to deploy first.
|
|
48
48
|
|
|
49
|
+
## Environment lifetimes
|
|
50
|
+
|
|
51
|
+
Review apps auto-stop after 1 week, dev environments after 4 weeks
|
|
52
|
+
(GitLab only — configure with top-level `autoStop` in `catladder.ts`).
|
|
53
|
+
Pin an MR's review apps with `yarn catladder mr pin` — see the
|
|
54
|
+
`catladder-pipelines` skill.
|
|
55
|
+
|
|
49
56
|
## Kubernetes essentials
|
|
50
57
|
|
|
51
58
|
`cluster` is required: `{ type: "gcloud", name, projectId, region, domainCanonical? }`.
|
|
@@ -167,8 +167,13 @@ A safe order:
|
|
|
167
167
|
against the old vault (unset values show as `🚨 FILL ME`)
|
|
168
168
|
2. switch `secrets.vault` in `catladder.ts`, `yarn catenv`
|
|
169
169
|
3. `yarn catladder project secrets-push <env>: --file /tmp/secrets.yml`
|
|
170
|
-
4. `yarn catladder project
|
|
171
|
-
|
|
170
|
+
4. `yarn catladder project setup` — the *provisioned* credentials (the
|
|
171
|
+
gcloud deploy service account key, the kubernetes deploy
|
|
172
|
+
credentials) are hidden keys and therefore not part of the document
|
|
173
|
+
the pull/push round trip moves; setup re-provisions them into the
|
|
174
|
+
new vault
|
|
175
|
+
5. `yarn catladder project doctor`, then delete the temp file
|
|
176
|
+
6. only now decommission the GitLab project
|
|
172
177
|
|
|
173
178
|
Never commit the intermediate file, and see the `catladder-secrets`
|
|
174
179
|
skill for the exact command surface.
|
|
@@ -199,6 +204,17 @@ system's own registry, so they change host with the backend:
|
|
|
199
204
|
first pipeline on the new backend therefore **rebuilds every job image**
|
|
200
205
|
— it will be slow, and that is expected, not a bug.
|
|
201
206
|
|
|
207
|
+
GHCR paths must be lowercase (the OCI spec allows no uppercase in a
|
|
208
|
+
repository name). If the GitHub owner or repo name is mixed-case
|
|
209
|
+
(`AcmeCorp/Nautilus`), catladder resolves the repository from the git
|
|
210
|
+
remote at generation time and writes the lowercased path
|
|
211
|
+
(`ghcr.io/acmecorp/nautilus`) into the workflows; an all-lowercase
|
|
212
|
+
repository keeps the portable `${{ github.repository }}` expression.
|
|
213
|
+
Set `pipelines.github.repository: "AcmeCorp/Nautilus"` when generation
|
|
214
|
+
cannot see the remote — without it, every docker job fails with
|
|
215
|
+
`repository name must be lowercase`. `catladder project doctor` reports
|
|
216
|
+
this.
|
|
217
|
+
|
|
202
218
|
Where the **app image** goes depends on the deploy type:
|
|
203
219
|
|
|
204
220
|
- **`google-cloudrun`** — the image goes to Google Artifact Registry
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: catladder-pipelines
|
|
3
|
-
description: Understanding and debugging the CI/CD pipelines catladder generates (GitLab CI and GitHub Actions) — pipeline triggers, stages, environments, caching, job images, releases, and infrastructure drift. Use when investigating failing CI jobs, when asked why/when a job runs, when changing caching or job behavior, or when
|
|
3
|
+
description: Understanding and debugging the CI/CD pipelines catladder generates (GitLab CI and GitHub Actions) — pipeline triggers, stages, environments, caching, job images, releases, and infrastructure drift. Use when investigating failing CI jobs, when asked why/when a job runs, when changing caching or job behavior, when deployments misbehave, or when a review app stopped/expired or should be kept alive (pinning). Triggers on "pipeline", "CI job", "gitlab-ci", "workflow", "deploy failed", "cache", "release", "auto-stop", "review app stopped", "pin review app", "keep review app".
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# How catladder pipelines work
|
|
@@ -37,6 +37,32 @@ Generated layout:
|
|
|
37
37
|
Stages: setup → test → build → deploy → verify (post-deploy checks),
|
|
38
38
|
plus stop jobs for review-app teardown.
|
|
39
39
|
|
|
40
|
+
## Review-app auto-stop and pinning (GitLab)
|
|
41
|
+
|
|
42
|
+
GitLab review environments stop automatically after 1 week, dev
|
|
43
|
+
environments after 4 weeks. Configure with top-level `autoStop` in
|
|
44
|
+
`catladder.ts` (`{ review, dev }`, gitlab natural language like
|
|
45
|
+
`"3 days"` or `"never"`). Merging or closing the MR always stops its
|
|
46
|
+
review apps, independent of the timer.
|
|
47
|
+
|
|
48
|
+
To keep an MR's review apps alive longer, pin the MR:
|
|
49
|
+
|
|
50
|
+
- `yarn catladder mr pin` — adds the pin label (default
|
|
51
|
+
`catladder::pin-review`, configurable via `autoStop.pinLabel`) to the
|
|
52
|
+
current branch's open MR and triggers a pipeline so the pin takes
|
|
53
|
+
effect immediately. While the label is set, ALL components' review
|
|
54
|
+
apps deploy with `auto_stop_in: never`.
|
|
55
|
+
- `yarn catladder mr unpin` — removes the label; the auto-stop timer
|
|
56
|
+
re-arms with the next deploy.
|
|
57
|
+
|
|
58
|
+
The pin lives on the MR (a label), not on the environment, so it
|
|
59
|
+
survives redeploys — unlike gitlab's per-environment pin button, which
|
|
60
|
+
the next successful deploy resets. Adding/removing the label by hand
|
|
61
|
+
works too; a label change takes effect from the MR's next pipeline.
|
|
62
|
+
|
|
63
|
+
GitHub has no auto-stop: review apps run until the pull request is
|
|
64
|
+
closed (pinning does not apply there).
|
|
65
|
+
|
|
40
66
|
## Job images and catci
|
|
41
67
|
|
|
42
68
|
Jobs run in catladder-provided images (`🐳 catladder image <name>` build
|
|
@@ -56,6 +82,30 @@ materialized into `.catladder-generated/images/project/<name>/`. Either
|
|
|
56
82
|
way the build job is skipped when the content hash already exists in
|
|
57
83
|
the registry.
|
|
58
84
|
|
|
85
|
+
### GHCR image paths are lowercased (GitHub)
|
|
86
|
+
|
|
87
|
+
Image repository names may not contain uppercase characters, but
|
|
88
|
+
GitHub's `${{ github.repository }}` context interpolates the display
|
|
89
|
+
casing of the owner and repo. For a mixed-case repository
|
|
90
|
+
(`AcmeCorp/Nautilus`) catladder therefore resolves the repository from
|
|
91
|
+
the git remote at generation time and writes the lowercased literal
|
|
92
|
+
(`ghcr.io/acmecorp/nautilus/...`) into the workflows — GHCR serves that
|
|
93
|
+
org under the lowercased namespace, so it is the correct address.
|
|
94
|
+
An all-lowercase repository keeps the `${{ github.repository }}`
|
|
95
|
+
expression, which stays correct in forks.
|
|
96
|
+
|
|
97
|
+
If a docker job fails with `invalid tag ...: repository name must be
|
|
98
|
+
lowercase`, the committed workflows were generated before this was
|
|
99
|
+
fixed (or hand-edited): regenerate with `yarn catenv` and commit. When
|
|
100
|
+
generation cannot see the git remote, pin it explicitly:
|
|
101
|
+
|
|
102
|
+
```ts
|
|
103
|
+
pipelines: { github: { repository: "AcmeCorp/Nautilus" } },
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
`yarn catladder project doctor` reports a mixed-case repository whose
|
|
107
|
+
generated workflows still carry the expression.
|
|
108
|
+
|
|
59
109
|
## Caching
|
|
60
110
|
|
|
61
111
|
Cache configuration is generated per build type. **yarn** node builds
|
|
@@ -80,6 +80,22 @@ All of these write to the secrets vault (the source of truth) and
|
|
|
80
80
|
automatically mirror to the enabled CI backends — which vault is
|
|
81
81
|
configured makes no difference to the commands.
|
|
82
82
|
|
|
83
|
+
## Provisioned secrets
|
|
84
|
+
|
|
85
|
+
A few secrets are not typed in by a human but created by
|
|
86
|
+
`yarn catladder project setup`: the gcloud deploy service account key
|
|
87
|
+
(`GCLOUD_DEPLOY_credentialsKey`) and the kubernetes deploy credentials
|
|
88
|
+
(`KUBE_TOKEN`, `KUBE_CA_PEM`, `KUBE_URL`). They travel the same route as
|
|
89
|
+
every other secret — vault first, then the enabled CI backends — but
|
|
90
|
+
they are *hidden*: they never show up in `secrets-list`, in the editor
|
|
91
|
+
or in a pulled document, and they must never be set by hand.
|
|
92
|
+
|
|
93
|
+
Re-running `project setup` **rotates** them (a fresh credential is
|
|
94
|
+
created and the old one revoked). That is also the answer whenever they
|
|
95
|
+
are missing somewhere — after switching `secrets.vault`, for instance:
|
|
96
|
+
a `secrets-pull`/`secrets-push` round trip does not carry hidden keys
|
|
97
|
+
over, so re-run `project setup` to provision them into the new vault.
|
|
98
|
+
|
|
83
99
|
## GitHub pipelines
|
|
84
100
|
|
|
85
101
|
GitHub Actions cannot read the vault at runtime; secrets are mirrored
|