@catladder/cli 0.0.0-fix-github-release-deploy-key-8a37ce13 → 0.0.0-fix-ghcr-lowercase-image-names-c09dd5a2
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/release/changesetsReleaseJob.js +3 -0
- package/dist/apps/cli/src/release/changesetsReleaseJob.js.map +1 -1
- package/dist/apps/cli/src/release/releaseEntry.d.ts +12 -0
- package/dist/apps/cli/src/release/releaseEntry.js +71 -0
- package/dist/apps/cli/src/release/releaseEntry.js.map +1 -0
- 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/catci/index.js +4 -4
- package/dist/bundles/catenv/index.js +265 -28
- package/dist/bundles/cli/index.js +851 -329
- package/dist/bundles/runner-images/semantic-release/Dockerfile +1 -0
- package/dist/bundles/runner-images/semantic-release/scripts/semanticRelease +14 -4
- 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-releases/SKILL.md +16 -2
- 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/runner-images/semantic-release/Dockerfile +1 -0
- package/dist/runner-images/semantic-release/scripts/semanticRelease +14 -4
- 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-releases/SKILL.md +16 -2
- 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/release/__tests__/releaseEntry.test.ts +88 -0
- package/src/release/changesetsReleaseJob.ts +3 -0
- package/src/release/releaseEntry.ts +86 -0
- 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,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toGhcrRegistryImage = exports.parseGithubRepoFromRemoteUrl = exports.GHCR_REPOSITORY_EXPRESSION = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* the ghcr namespace expressed through the actions context — portable
|
|
6
|
+
* across forks, and what every all-lowercase repository keeps using
|
|
7
|
+
*/
|
|
8
|
+
exports.GHCR_REPOSITORY_EXPRESSION = "ghcr.io/${{ github.repository }}";
|
|
9
|
+
/**
|
|
10
|
+
* parses `owner/name` out of a github remote url (ssh or https, with or
|
|
11
|
+
* without the `.git` suffix).
|
|
12
|
+
*
|
|
13
|
+
* Shared with the cli (`apps/cli/src/utils/github.ts`) so the two can't
|
|
14
|
+
* drift apart.
|
|
15
|
+
*/
|
|
16
|
+
const parseGithubRepoFromRemoteUrl = (url) => { var _a; return (_a = url.match(/github\.com[:/]([\w.-]+\/[\w.-]+?)(\.git)?\s*$/)) === null || _a === void 0 ? void 0 : _a[1]; };
|
|
17
|
+
exports.parseGithubRepoFromRemoteUrl = parseGithubRepoFromRemoteUrl;
|
|
18
|
+
/**
|
|
19
|
+
* the ghcr image prefix for an `owner/name` repository.
|
|
20
|
+
*
|
|
21
|
+
* The OCI distribution spec only allows `[a-z0-9]` plus `.`, `_` and `-`
|
|
22
|
+
* separators in a repository name, so a mixed-case owner or repo (very
|
|
23
|
+
* common for org logins: `AcmeCorp`, …) makes the docker client reject
|
|
24
|
+
* every tag before it even reaches the network. Lowercasing is not a
|
|
25
|
+
* workaround: the org `AcmeCorp` owns the namespace `ghcr.io/acmecorp`,
|
|
26
|
+
* so the lowercased path is the correct address.
|
|
27
|
+
*
|
|
28
|
+
* Returns the `${{ github.repository }}` expression when lowercasing
|
|
29
|
+
* would change nothing — it is equivalent for those repositories, and
|
|
30
|
+
* unlike a literal it keeps working in a fork (whose token can only
|
|
31
|
+
* push to the fork's own namespace).
|
|
32
|
+
*/
|
|
33
|
+
const toGhcrRegistryImage = (repository) => {
|
|
34
|
+
const lowercased = repository.toLowerCase();
|
|
35
|
+
return lowercased === repository
|
|
36
|
+
? exports.GHCR_REPOSITORY_EXPRESSION
|
|
37
|
+
: `ghcr.io/${lowercased}`;
|
|
38
|
+
};
|
|
39
|
+
exports.toGhcrRegistryImage = toGhcrRegistryImage;
|
|
40
|
+
//# sourceMappingURL=ghcr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ghcr.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/github/ghcr.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,0BAA0B,GAAG,kCAAkC,CAAC;AAE7E;;;;;;GAMG;AACI,MAAM,4BAA4B,GAAG,CAAC,GAAW,EAAsB,EAAE,WAC9E,OAAA,MAAA,GAAG,CAAC,KAAK,CAAC,gDAAgD,CAAC,0CAAG,CAAC,CAAC,CAAA,EAAA,CAAC;AADtD,QAAA,4BAA4B,gCAC0B;AAEnE;;;;;;;;;;;;;;GAcG;AACI,MAAM,mBAAmB,GAAG,CAAC,UAAkB,EAAU,EAAE;IAChE,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,UAAU,KAAK,UAAU;QAC9B,CAAC,CAAC,kCAA0B;QAC5B,CAAC,CAAC,WAAW,UAAU,EAAE,CAAC;AAC9B,CAAC,CAAC;AALW,QAAA,mBAAmB,uBAK9B"}
|
|
@@ -16,6 +16,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./GithubBackend"), exports);
|
|
18
18
|
__exportStar(require("./ciVariables"), exports);
|
|
19
|
+
__exportStar(require("./ghcr"), exports);
|
|
20
|
+
__exportStar(require("./registryImage"), exports);
|
|
19
21
|
__exportStar(require("./scriptFiles"), exports);
|
|
20
22
|
__exportStar(require("./aggregateCheckJob"), exports);
|
|
21
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/github/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,gDAA8B;AAC9B,gDAA8B;AAC9B,sDAAoC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/github/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,gDAA8B;AAC9B,yCAAuB;AACvB,kDAAgC;AAChC,gDAA8B;AAC9B,sDAAoC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Config } from "../../types";
|
|
2
|
+
/**
|
|
3
|
+
* the ghcr image prefix derived from the config alone
|
|
4
|
+
* (`pipelines.github.repository`), without touching git.
|
|
5
|
+
*
|
|
6
|
+
* Used where generation must stay pure and hermetic (tests, examples);
|
|
7
|
+
* {@link resolveGithubRegistryImage} adds the git remote fallback.
|
|
8
|
+
*/
|
|
9
|
+
export declare const githubRegistryImageFromConfig: (config: Config) => string | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* the ghcr image prefix to generate with: the configured repository, or
|
|
12
|
+
* the one the github git remote points at.
|
|
13
|
+
*
|
|
14
|
+
* Falls back to the `${{ github.repository }}` expression when the
|
|
15
|
+
* remote is unavailable (a checkout without the remote, a tarball, …).
|
|
16
|
+
* That is the pre-existing behavior and correct for every all-lowercase
|
|
17
|
+
* repository; `project doctor` catches the mixed-case case it is not
|
|
18
|
+
* correct for.
|
|
19
|
+
*/
|
|
20
|
+
export declare const resolveGithubRegistryImage: (config: Config) => Promise<string>;
|
|
@@ -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
|
*/
|
|
@@ -40,10 +40,20 @@ fi
|
|
|
40
40
|
echo "doing semantic release"
|
|
41
41
|
|
|
42
42
|
if [ "$GITHUB_ACTIONS" = "true" ]; then
|
|
43
|
-
# the
|
|
44
|
-
#
|
|
45
|
-
# is
|
|
46
|
-
|
|
43
|
+
# the github counterpart of the gitlab plugin below: it creates the
|
|
44
|
+
# entry on the releases page with the generated notes. Everything
|
|
45
|
+
# beyond that is switched off on purpose — commenting on the
|
|
46
|
+
# pull requests/issues of a release and labelling them would need
|
|
47
|
+
# `issues: write` / `pull-requests: write` on the release job, which
|
|
48
|
+
# only exists to release.
|
|
49
|
+
PUBLISH_PLUGIN=',
|
|
50
|
+
["@semantic-release/github", {
|
|
51
|
+
"successComment": false,
|
|
52
|
+
"failComment": false,
|
|
53
|
+
"failTitle": false,
|
|
54
|
+
"labels": false,
|
|
55
|
+
"releasedLabels": false
|
|
56
|
+
}]'
|
|
47
57
|
else
|
|
48
58
|
# no gitlabUrl: the plugin derives it from the CI-provided variables
|
|
49
59
|
# of the running instance. It used to be hardcoded to panter's gitlab,
|
|
@@ -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? }`.
|