@catladder/cli 0.0.0-next-8b9ad5ca → 0.0.0-next-1cd29c1f
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/catenv/index.js +19666 -1581
- package/dist/bundles/cli/index.js +18360 -195
- package/dist/cli/src/apps/cli/commands/project/commandConfigSecrets.js +22 -4
- package/dist/cli/src/apps/cli/commands/project/commandConfigSecrets.js.map +1 -1
- package/dist/cli/src/apps/cli/commands/project/setup/setupCloudRun.js +16 -14
- package/dist/cli/src/apps/cli/commands/project/setup/setupCloudRun.js.map +1 -1
- package/dist/cli/src/commands/project/commandSecretsSyncGithub.d.ts +11 -2
- package/dist/cli/src/commands/project/commandSecretsSyncGithub.js +37 -14
- package/dist/cli/src/commands/project/commandSecretsSyncGithub.js.map +1 -1
- package/dist/cli/src/gcloud/getProjectNumber.d.ts +5 -0
- package/dist/cli/src/gcloud/getProjectNumber.js +20 -0
- package/dist/cli/src/gcloud/getProjectNumber.js.map +1 -0
- package/dist/cli/src/store/updateCatladderStore.d.ts +10 -0
- package/dist/cli/src/store/updateCatladderStore.js +32 -0
- package/dist/cli/src/store/updateCatladderStore.js.map +1 -0
- package/dist/cli/src/utils/github.d.ts +6 -1
- package/dist/cli/src/utils/github.js +16 -9
- package/dist/cli/src/utils/github.js.map +1 -1
- package/dist/pipeline/src/backends/github/GithubBackend.d.ts +4 -1
- package/dist/pipeline/src/backends/github/GithubBackend.js +70 -12
- package/dist/pipeline/src/backends/github/GithubBackend.js.map +1 -1
- package/dist/pipeline/src/backends/github/ciVariables.js +3 -1
- package/dist/pipeline/src/backends/github/ciVariables.js.map +1 -1
- package/dist/pipeline/src/backends/github/createGithubJobs.d.ts +13 -3
- package/dist/pipeline/src/backends/github/createGithubJobs.js +80 -14
- package/dist/pipeline/src/backends/github/createGithubJobs.js.map +1 -1
- package/dist/pipeline/src/backends/github/githubReleaseJobs.d.ts +2 -1
- package/dist/pipeline/src/backends/github/githubReleaseJobs.js +46 -33
- package/dist/pipeline/src/backends/github/githubReleaseJobs.js.map +1 -1
- package/dist/pipeline/src/backends/github/index.d.ts +2 -1
- package/dist/pipeline/src/backends/github/index.js +2 -1
- package/dist/pipeline/src/backends/github/index.js.map +1 -1
- package/dist/pipeline/src/backends/github/scriptFiles.d.ts +25 -0
- package/dist/pipeline/src/backends/github/scriptFiles.js +50 -0
- package/dist/pipeline/src/backends/github/scriptFiles.js.map +1 -0
- package/dist/pipeline/src/backends/gitlab/GitlabBackend.d.ts +1 -0
- package/dist/pipeline/src/backends/gitlab/GitlabBackend.js +18 -8
- package/dist/pipeline/src/backends/gitlab/GitlabBackend.js.map +1 -1
- package/dist/pipeline/src/backends/gitlab/ciVariables.js +2 -1
- package/dist/pipeline/src/backends/gitlab/ciVariables.js.map +1 -1
- package/dist/pipeline/src/backends/gitlab/createGitlabJobs.d.ts +3 -2
- package/dist/pipeline/src/backends/gitlab/createGitlabJobs.js +84 -10
- package/dist/pipeline/src/backends/gitlab/createGitlabJobs.js.map +1 -1
- package/dist/pipeline/src/backends/gitlab/createGitlabPipeline.js +1 -1
- package/dist/pipeline/src/backends/gitlab/createGitlabPipeline.js.map +1 -1
- package/dist/pipeline/src/backends/gitlab/gitlabReleaseJobs.js +2 -2
- package/dist/pipeline/src/backends/gitlab/gitlabReleaseJobs.js.map +1 -1
- package/dist/pipeline/src/backends/types.d.ts +2 -1
- package/dist/pipeline/src/bash/ciVariables.d.ts +1 -1
- package/dist/pipeline/src/bash/ciVariables.js.map +1 -1
- package/dist/pipeline/src/build/node/yarn.js +4 -1
- package/dist/pipeline/src/build/node/yarn.js.map +1 -1
- package/dist/pipeline/src/build/types.d.ts +1 -1
- package/dist/pipeline/src/config/readConfig.js +15 -4
- package/dist/pipeline/src/config/readConfig.js.map +1 -1
- package/dist/pipeline/src/constants.js +1 -1
- package/dist/pipeline/src/context/getEnvironmentVariables.d.ts +8 -0
- package/dist/pipeline/src/context/getEnvironmentVariables.js +3 -3
- package/dist/pipeline/src/context/getEnvironmentVariables.js.map +1 -1
- package/dist/pipeline/src/context/transformJobOnlyVars.js +2 -2
- package/dist/pipeline/src/context/transformJobOnlyVars.js.map +1 -1
- package/dist/pipeline/src/context/utils/envVars.d.ts +7 -0
- package/dist/pipeline/src/context/utils/envVars.js +22 -1
- package/dist/pipeline/src/context/utils/envVars.js.map +1 -1
- package/dist/pipeline/src/customImages/hash.d.ts +15 -0
- package/dist/pipeline/src/customImages/hash.js +71 -0
- package/dist/pipeline/src/customImages/hash.js.map +1 -0
- package/dist/pipeline/src/customImages/jobImagesPlan.d.ts +59 -0
- package/dist/pipeline/src/customImages/jobImagesPlan.js +172 -0
- package/dist/pipeline/src/customImages/jobImagesPlan.js.map +1 -0
- package/dist/pipeline/src/customImages/shippedImages.d.ts +28 -0
- package/dist/pipeline/src/customImages/shippedImages.js +60 -0
- package/dist/pipeline/src/customImages/shippedImages.js.map +1 -0
- package/dist/pipeline/src/deploy/cloudRun/createJobs/common.d.ts +6 -3
- package/dist/pipeline/src/deploy/cloudRun/createJobs/common.js +11 -3
- package/dist/pipeline/src/deploy/cloudRun/createJobs/common.js.map +1 -1
- package/dist/pipeline/src/deploy/cloudRun/createJobs/execute/schedules.js +2 -2
- package/dist/pipeline/src/deploy/cloudRun/createJobs/execute/schedules.js.map +1 -1
- package/dist/pipeline/src/deploy/cloudRun/createJobs/getCloudRunDeployScripts.js +1 -1
- package/dist/pipeline/src/deploy/cloudRun/createJobs/getCloudRunDeployScripts.js.map +1 -1
- package/dist/pipeline/src/deploy/cloudRun/index.d.ts +0 -1
- package/dist/pipeline/src/deploy/cloudRun/index.js +11 -13
- package/dist/pipeline/src/deploy/cloudRun/index.js.map +1 -1
- package/dist/pipeline/src/deploy/cloudRun/utils/database.js +4 -1
- package/dist/pipeline/src/deploy/cloudRun/utils/database.js.map +1 -1
- package/dist/pipeline/src/index.d.ts +1 -0
- package/dist/pipeline/src/index.js +1 -0
- package/dist/pipeline/src/index.js.map +1 -1
- package/dist/pipeline/src/pipeline/generatePipelineFiles.js +16 -1
- package/dist/pipeline/src/pipeline/generatePipelineFiles.js.map +1 -1
- package/dist/pipeline/src/runner/index.d.ts +20 -1
- package/dist/pipeline/src/runner/index.js +16 -3
- package/dist/pipeline/src/runner/index.js.map +1 -1
- package/dist/pipeline/src/store/index.d.ts +36 -0
- package/dist/pipeline/src/store/index.js +64 -0
- package/dist/pipeline/src/store/index.js.map +1 -0
- package/dist/pipeline/src/types/config.d.ts +36 -2
- package/dist/pipeline/src/types/config.js.map +1 -1
- package/dist/pipeline/src/types/github-types.d.ts +5 -0
- package/dist/pipeline/src/types/jobs.d.ts +10 -2
- package/dist/pipeline/src/types/jobs.js.map +1 -1
- package/dist/pipeline/src/utils/gitlab.d.ts +5 -0
- package/dist/pipeline/src/utils/gitlab.js +6 -0
- package/dist/pipeline/src/utils/gitlab.js.map +1 -1
- package/dist/pipeline/src/utils/writeFiles.d.ts +6 -0
- package/dist/pipeline/src/utils/writeFiles.js +8 -0
- package/dist/pipeline/src/utils/writeFiles.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/apps/cli/commands/project/commandConfigSecrets.ts +25 -5
- package/src/apps/cli/commands/project/setup/setupCloudRun.ts +13 -21
- package/src/commands/project/commandSecretsSyncGithub.ts +34 -11
- package/src/gcloud/getProjectNumber.ts +20 -0
- package/src/store/updateCatladderStore.ts +33 -0
- package/src/utils/github.ts +24 -7
- package/dist/cli/src/gcloud/cloudRun/getCloudRunDomainSuffix.d.ts +0 -2
- package/dist/cli/src/gcloud/cloudRun/getCloudRunDomainSuffix.js +0 -29
- package/dist/cli/src/gcloud/cloudRun/getCloudRunDomainSuffix.js.map +0 -1
- package/src/gcloud/cloudRun/getCloudRunDomainSuffix.ts +0 -35
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCloudRunDeployScripts.js","sourceRoot":"","sources":["../../../../../../../pipeline/src/deploy/cloudRun/createJobs/getCloudRunDeployScripts.ts"],"names":[],"mappings":";;;AAAA,yCAAiC;AAEjC,kDAA4D;AAE5D,0BAAmD;AACnD,qDAAmE;AACnE,wCAAmE;AACnE,gDAA4D;AAC5D,kGAA+F;AAC/F,iDAAqD;AACrD,iDAA8D;AAC9D,yDAA4D;AAC5D,+DAAkE;AAClE,
|
|
1
|
+
{"version":3,"file":"getCloudRunDeployScripts.js","sourceRoot":"","sources":["../../../../../../../pipeline/src/deploy/cloudRun/createJobs/getCloudRunDeployScripts.ts"],"names":[],"mappings":";;;AAAA,yCAAiC;AAEjC,kDAA4D;AAE5D,0BAAmD;AACnD,qDAAmE;AACnE,wCAAmE;AACnE,gDAA4D;AAC5D,kGAA+F;AAC/F,iDAAqD;AACrD,iDAA8D;AAC9D,yDAA4D;AAC5D,+DAAkE;AAClE,qCAAmD;AACnD,2CAAgD;AAChD,mDAA8D;AAM9D,SAAgB,wBAAwB,CAAC,OAAyB;;IAChE,MAAM,YAAY,GAAG,IAAA,gCAAuB,EAAC,OAAO,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,IAAA,gBAAI,EACrB,OAAO,CAAC,WAAW,CAAC,OAAO,EAC3B,iCAA6B,CAC9B,CAAC;IAEF,OAAO;QACL,GAAG,IAAA,4BAAmB,EACpB,SAAS,EACT,YAAY,CACb,CAAC,CAAC,GAAG,IAAA,qEAAiC,EAAC,OAAO,CAAC,CAAC,CAAC;QAClD,GAAG,IAAA,4BAAmB,EACpB,cAAc,EACd,wBAAwB,CACzB,CAAC,IAAA,oCAAyB,EAAC,UAAU,EAAE,6BAAiB,CAAC,CAAC;QAE3D,GAAG,IAAA,4BAAmB,EACpB,QAAQ,EACR,qBAAqB,CACtB,CAAC;YACA,GAAG,CAAC,YAAY,CAAC,QAAQ;gBACvB,CAAC,CAAC,IAAA,kCAAuB,EAAC,OAAO,EAAE,YAAY,CAAC,CAAC,6DAA6D;gBAC9G,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,IAAA,mCAAuB,EAAC,OAAO,CAAC;YACnC,GAAG,IAAA,kCAAmB,EAAC,OAAO,CAAC;YAC/B,GAAG,IAAA,mCAAwB,EAAC,OAAO,EAAE,WAAW,CAAC;YAEjD,GAAG,CAAC,YAAY,CAAC,OAAO,KAAK,KAAK;gBAChC,CAAC,CAAC,CAAC,IAAA,yCAAsB,EAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gBACzD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,MAAM,CAAC,OAAO,CAAC,MAAA,YAAY,CAAC,kBAAkB,mCAAI,EAAE,CAAC;iBACrD,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,IAAI,CAAC;iBAC/D,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CACvB,IAAA,yCAAsB,EACpB,OAAO,EACP,OAAsC,EACtC,GAAG,GAAG,IAAI,CACX,CACF;YACH,GAAG,MAAM,CAAC,OAAO,CAAC,MAAA,YAAY,CAAC,WAAW,mCAAI,EAAE,CAAC;iBAC9C,MAAM,CACL,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,IAAI,CACjE;iBACA,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,CAC1B,IAAA,+CAAyB,EACvB,OAAO,EACP,UAA4C,EAC5C,IAAI,CACL,CACF;YACH,GAAG,IAAA,mCAAwB,EAAC,OAAO,EAAE,YAAY,CAAC;SACnD,CAAC;QACF,GAAG,IAAA,4BAAmB,EACpB,SAAS,EACT,SAAS,CACV,CACC,IAAA,+CAAqC,EAAC,OAAO,EAAE,YAAY,CAAC,CAC7D;KACF,CAAC;AACJ,CAAC;AA5DD,4DA4DC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import type { DeployConfigCloudRun, DeployTypeDefinition } from "..";
|
|
2
2
|
export declare const GCLOUD_DEPLOY_CREDENTIALS_KEY = "GCLOUD_DEPLOY_credentialsKey";
|
|
3
|
-
export declare const GCLOUD_RUN_CANONICAL_HOST_SUFFIX = "GCLOUD_RUN_canonicalHostSuffix";
|
|
4
3
|
export declare const GCLOUD_RUN_DEPLOY_TYPE: DeployTypeDefinition<DeployConfigCloudRun>;
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.GCLOUD_RUN_DEPLOY_TYPE = exports.
|
|
6
|
+
exports.GCLOUD_RUN_DEPLOY_TYPE = exports.GCLOUD_DEPLOY_CREDENTIALS_KEY = void 0;
|
|
7
7
|
const BashExpression_1 = require("../../bash/BashExpression");
|
|
8
8
|
const context_1 = require("../../context");
|
|
9
|
+
const store_1 = require("../../store");
|
|
9
10
|
const gitlab_1 = require("../../utils/gitlab");
|
|
10
11
|
const utils_1 = require("../cloudSql/utils");
|
|
11
12
|
const createJobs_1 = require("./createJobs");
|
|
@@ -13,8 +14,6 @@ const cloudRunExecutionUrl_1 = require("./utils/cloudRunExecutionUrl");
|
|
|
13
14
|
const database_1 = require("./utils/database");
|
|
14
15
|
const getServiceName_1 = require("./utils/getServiceName");
|
|
15
16
|
exports.GCLOUD_DEPLOY_CREDENTIALS_KEY = "GCLOUD_DEPLOY_credentialsKey";
|
|
16
|
-
// FIXME: rename to internalHostSuffix, but this means that project-setup needs to be rerun, so its kindof a breaking change
|
|
17
|
-
exports.GCLOUD_RUN_CANONICAL_HOST_SUFFIX = "GCLOUD_RUN_canonicalHostSuffix";
|
|
18
17
|
const getCloudSqlVariables = ({
|
|
19
18
|
deployConfigRaw,
|
|
20
19
|
environmentSlugPrefix,
|
|
@@ -60,30 +59,29 @@ exports.GCLOUD_RUN_DEPLOY_TYPE = {
|
|
|
60
59
|
...(ctx.envType !== "local" ? [{
|
|
61
60
|
key: exports.GCLOUD_DEPLOY_CREDENTIALS_KEY,
|
|
62
61
|
hidden: true
|
|
63
|
-
}, {
|
|
64
|
-
key: exports.GCLOUD_RUN_CANONICAL_HOST_SUFFIX,
|
|
65
|
-
hidden: true
|
|
66
62
|
}] : []), ...(ctx.deployConfigRaw && ctx.deployConfigRaw.cloudSql ? [{
|
|
67
63
|
key: "DB_PASSWORD"
|
|
68
64
|
}] : [])],
|
|
69
65
|
getAdditionalEnvVars: ctx => {
|
|
70
66
|
const {
|
|
71
67
|
fullName,
|
|
72
|
-
env,
|
|
73
|
-
componentName,
|
|
74
68
|
deployConfigRaw,
|
|
75
|
-
envType
|
|
69
|
+
envType,
|
|
70
|
+
fullConfig
|
|
76
71
|
} = ctx;
|
|
77
|
-
|
|
72
|
+
// cloud run's deterministic url host:
|
|
73
|
+
// `<service>-<projectNumber>.<region>.run.app` — computable at
|
|
74
|
+
// generation time. For review envs the service name part still
|
|
75
|
+
// contains a runtime expression (the review slug), so the host stays
|
|
76
|
+
// a bash expression there; the suffix is always a literal.
|
|
77
|
+
const HOSTNAME_INTERNAL = deployConfigRaw && envType !== "local" ? (0, BashExpression_1.joinBashExpressions)([fullName, `${(0, store_1.getGcloudProjectNumber)(fullConfig, deployConfigRaw.projectId)}.${deployConfigRaw.region}.run.app`], "-").toLowerCase() : undefined;
|
|
78
78
|
const jobTriggers = deployConfigRaw && deployConfigRaw.jobs ? Object.fromEntries(Object.entries(deployConfigRaw.jobs).filter(([name, job]) => Boolean(job)).map(([name, job]) => ["CLOUD_RUN_JOB_TRIGGER_URL_" + (0, gitlab_1.sanitizeForBashVariable)(name), (0, cloudRunExecutionUrl_1.getCloudRunJobExecuteUrl)(name, {
|
|
79
79
|
appFullName: fullName,
|
|
80
80
|
projectId: deployConfigRaw.projectId,
|
|
81
81
|
region: deployConfigRaw.region
|
|
82
82
|
})])) : {};
|
|
83
83
|
return {
|
|
84
|
-
|
|
85
|
-
// exist for the local env
|
|
86
|
-
...(envType !== "local" ? {
|
|
84
|
+
...(HOSTNAME_INTERNAL ? {
|
|
87
85
|
HOSTNAME_INTERNAL
|
|
88
86
|
} : {}),
|
|
89
87
|
...getCloudSqlVariables(ctx),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../pipeline/src/deploy/cloudRun/index.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../pipeline/src/deploy/cloudRun/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,10 @@ const getDatabaseDeleteScript = (context, deployConfig) => {
|
|
|
18
18
|
// unfortunatly the database cannot be deleted right after the service has stopped, as it might still have connections
|
|
19
19
|
// we have to repeate this process
|
|
20
20
|
return [`echo "deleting database ${DB_NAME}..."`, `echo "👆 this can take multiple attemps (3-5min), because google cloud run may still have a connection to the database after the cloud run service is shut down"`, (0, gitlab_1.repeatOnFailure)(`gcloud sql databases delete ${DB_NAME} --instance=${instanceId} --project ${projectId}`, {
|
|
21
|
-
pauseInSeconds: 10
|
|
21
|
+
pauseInSeconds: 10,
|
|
22
|
+
// connections normally clear within 3-5min; anything beyond is
|
|
23
|
+
// a permanent error (missing permission, wrong instance, ...)
|
|
24
|
+
maxAttempts: 30
|
|
22
25
|
})];
|
|
23
26
|
};
|
|
24
27
|
exports.getDatabaseDeleteScript = getDatabaseDeleteScript;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../../../../../pipeline/src/deploy/cloudRun/utils/database.ts"],"names":[],"mappings":";;;AAAA,wCAIuB;AAEvB,kDAA+E;AAMxE,MAAM,uBAAuB,GAAG,CACrC,OAAyB,EACzB,YAAkC,EACxB,EAAE;IACZ,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,GACnC,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1D,sHAAsH;IACtH,kCAAkC;IAClC,OAAO;QACL,2BAA2B,OAAO,MAAM;QACxC,kKAAkK;QAClK,IAAA,wBAAe,EACb,+BAA+B,OAAO,eAAe,UAAU,cAAc,SAAS,EAAE,EACxF;YACE,cAAc,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../../../../../pipeline/src/deploy/cloudRun/utils/database.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ __exportStar(require("./types"), exports);
|
|
|
28
28
|
__exportStar(require("./rules"), exports);
|
|
29
29
|
__exportStar(require("./runner"), exports);
|
|
30
30
|
__exportStar(require("./config"), exports);
|
|
31
|
+
__exportStar(require("./store"), exports);
|
|
31
32
|
__exportStar(require("./context"), exports);
|
|
32
33
|
__exportStar(require("./build"), exports);
|
|
33
34
|
__exportStar(require("./deploy"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../pipeline/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,6CAA2B;AAC3B,0CAAwB;AACxB,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,0CAAwB;AACxB,2CAAyB;AACzB,qDAAmC;AACnC,sDAAoC;AACpC,4DAA0C;AAC1C,yCAAuB;AACvB,2CAAyB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../pipeline/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,6CAA2B;AAC3B,0CAAwB;AACxB,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,0CAAwB;AACxB,4CAA0B;AAC1B,0CAAwB;AACxB,2CAAyB;AACzB,qDAAmC;AACnC,sDAAoC;AACpC,4DAA0C;AAC1C,yCAAuB;AACvB,2CAAyB"}
|
|
@@ -8,6 +8,7 @@ const promises_1 = require("fs/promises");
|
|
|
8
8
|
const path_1 = require("path");
|
|
9
9
|
const backends_1 = require("../backends");
|
|
10
10
|
const gitlab_1 = require("../backends/gitlab");
|
|
11
|
+
const jobImagesPlan_1 = require("../customImages/jobImagesPlan");
|
|
11
12
|
/**
|
|
12
13
|
* generates the pipeline files of all pipeline types enabled in the
|
|
13
14
|
* config (see `pipelines`). Pass an explicit `pipelineType` to generate
|
|
@@ -15,6 +16,16 @@ const gitlab_1 = require("../backends/gitlab");
|
|
|
15
16
|
*/
|
|
16
17
|
async function generatePipelineFiles(context, pipelineType) {
|
|
17
18
|
const pipelineTypes = pipelineType ? [pipelineType] : (0, backends_1.getEnabledPipelineTypes)(context.config);
|
|
19
|
+
if (!pipelineType) {
|
|
20
|
+
// the materialized image definitions are a union across all enabled
|
|
21
|
+
// backends and no single backend may wipe them — cleaned once per
|
|
22
|
+
// full generation, so images that fell out of use don't linger (and
|
|
23
|
+
// keep triggering gitlab's rules:changes)
|
|
24
|
+
await (0, promises_1.rm)(jobImagesPlan_1.GENERATED_IMAGES_FOLDER, {
|
|
25
|
+
recursive: true,
|
|
26
|
+
force: true
|
|
27
|
+
});
|
|
28
|
+
}
|
|
18
29
|
for (const type of pipelineTypes) {
|
|
19
30
|
await generatePipelineFilesForBackend(context, (0, backends_1.getPipelineBackend)(type));
|
|
20
31
|
}
|
|
@@ -32,7 +43,11 @@ async function generatePipelineFilesForBackend(context, backend) {
|
|
|
32
43
|
await (0, promises_1.mkdir)((0, path_1.dirname)(path), {
|
|
33
44
|
recursive: true
|
|
34
45
|
});
|
|
35
|
-
|
|
46
|
+
if (typeof content === "string") {
|
|
47
|
+
await context.fileWriter.writeGeneratedFileRaw(path, content);
|
|
48
|
+
} else {
|
|
49
|
+
await context.fileWriter.writeYamlfile(path, content);
|
|
50
|
+
}
|
|
36
51
|
}));
|
|
37
52
|
}
|
|
38
53
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePipelineFiles.js","sourceRoot":"","sources":["../../../../../pipeline/src/pipeline/generatePipelineFiles.ts"],"names":[],"mappings":";;;AAAA,
|
|
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;AAExE;;;;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;IACtE,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;AAnBD,sDAmBC;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"}
|
|
@@ -1,2 +1,21 @@
|
|
|
1
1
|
export type RunnerImageName = "jobs-default" | "jobs-meteor" | "jobs-testing-chrome" | "kubernetes" | "docker-build" | "gcloud" | "semantic-release" | "agent-claude";
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* a reference to a catladder-provided job image. It is resolved by the
|
|
4
|
+
* pipeline backend according to the `jobImages` mode:
|
|
5
|
+
* - central: the image from catladder's central registry
|
|
6
|
+
* - repo: the image is built in the repository's own registry from the
|
|
7
|
+
* image definition shipped with catladder
|
|
8
|
+
*/
|
|
9
|
+
export type CatladderImageRef = {
|
|
10
|
+
catladderImage: RunnerImageName;
|
|
11
|
+
};
|
|
12
|
+
export declare const isCatladderImageRef: (value: unknown) => value is CatladderImageRef;
|
|
13
|
+
/**
|
|
14
|
+
* job creators use this to reference a catladder-provided job image;
|
|
15
|
+
* the backends resolve it to a concrete image url
|
|
16
|
+
*/
|
|
17
|
+
export declare const getRunnerImage: (imageName: RunnerImageName) => CatladderImageRef;
|
|
18
|
+
/**
|
|
19
|
+
* the image url in catladder's central registry (the classic behavior)
|
|
20
|
+
*/
|
|
21
|
+
export declare const getCentralRunnerImageUrl: (imageName: RunnerImageName) => string;
|
|
@@ -3,7 +3,20 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getRunnerImage = void 0;
|
|
6
|
+
exports.getCentralRunnerImageUrl = exports.getRunnerImage = exports.isCatladderImageRef = void 0;
|
|
7
7
|
const constants_1 = require("../constants");
|
|
8
|
-
const
|
|
9
|
-
exports.
|
|
8
|
+
const isCatladderImageRef = value => typeof value === "object" && value !== null && "catladderImage" in value && typeof value.catladderImage === "string";
|
|
9
|
+
exports.isCatladderImageRef = isCatladderImageRef;
|
|
10
|
+
/**
|
|
11
|
+
* job creators use this to reference a catladder-provided job image;
|
|
12
|
+
* the backends resolve it to a concrete image url
|
|
13
|
+
*/
|
|
14
|
+
const getRunnerImage = imageName => ({
|
|
15
|
+
catladderImage: imageName
|
|
16
|
+
});
|
|
17
|
+
exports.getRunnerImage = getRunnerImage;
|
|
18
|
+
/**
|
|
19
|
+
* the image url in catladder's central registry (the classic behavior)
|
|
20
|
+
*/
|
|
21
|
+
const getCentralRunnerImageUrl = imageName => constants_1.DOCKER_REGISTRY + "/" + imageName + ":" + constants_1.PIPELINE_IMAGE_TAG;
|
|
22
|
+
exports.getCentralRunnerImageUrl = getCentralRunnerImageUrl;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../pipeline/src/runner/index.ts"],"names":[],"mappings":";;;AAAA,4CAAmE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../pipeline/src/runner/index.ts"],"names":[],"mappings":";;;AAAA,4CAAmE;AAuB5D,MAAM,mBAAmB,GAAG,CACjC,KAAc,EACc,EAAE,CAC9B,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,gBAAgB,IAAI,KAAK;IACzB,OAAQ,KAA2B,CAAC,cAAc,KAAK,QAAQ,CAAC;AANrD,QAAA,mBAAmB,uBAMkC;AAElE;;;GAGG;AACI,MAAM,cAAc,GAAG,CAC5B,SAA0B,EACP,EAAE,CAAC,CAAC;IACvB,cAAc,EAAE,SAAS;CAC1B,CAAC,CAAC;AAJU,QAAA,cAAc,kBAIxB;AAEH;;GAEG;AACI,MAAM,wBAAwB,GAAG,CAAC,SAA0B,EAAU,EAAE,CAC7E,2BAAe,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,8BAAkB,CAAC;AADlD,QAAA,wBAAwB,4BAC0B"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const CATLADDER_STORE_DIR = ".catladder-store";
|
|
3
|
+
export declare const CATLADDER_STORE_FILE_NAME = "store.yml";
|
|
4
|
+
export declare const CATLADDER_STORE_FILE = ".catladder-store/store.yml";
|
|
5
|
+
/**
|
|
6
|
+
* schema of `.catladder-store/store.yml` — non-secret, machine-fetched
|
|
7
|
+
* values that pipeline generation needs but that are neither part of the
|
|
8
|
+
* user-authored config nor derivable from it (e.g. gcloud project numbers).
|
|
9
|
+
*
|
|
10
|
+
* The store is written by `catladder project setup` and checked into the
|
|
11
|
+
* repository. Deleting the folder is safe: rerunning project setup
|
|
12
|
+
* restores it.
|
|
13
|
+
*/
|
|
14
|
+
export declare const catladderStoreSchema: z.ZodObject<{
|
|
15
|
+
gcloudProjects: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
16
|
+
projectNumber: z.ZodString;
|
|
17
|
+
}, z.core.$strip>>>;
|
|
18
|
+
}, z.core.$strip>;
|
|
19
|
+
export type CatladderStore = z.infer<typeof catladderStoreSchema>;
|
|
20
|
+
export declare const getCatladderStorePath: (directory: string) => string;
|
|
21
|
+
/**
|
|
22
|
+
* reads and validates the catladder store. Returns an empty store when the
|
|
23
|
+
* file does not exist (project setup has not run yet).
|
|
24
|
+
*/
|
|
25
|
+
export declare const readCatladderStore: (directory?: string) => CatladderStore;
|
|
26
|
+
/**
|
|
27
|
+
* gcloud project number from the store — needed to compute deterministic
|
|
28
|
+
* cloud run urls (`<service>-<projectNumber>.<region>.run.app`) at
|
|
29
|
+
* generation time.
|
|
30
|
+
*
|
|
31
|
+
* Throws with a setup instruction when the value is missing, which makes
|
|
32
|
+
* catenv fail until `catladder project setup` has stored it.
|
|
33
|
+
*/
|
|
34
|
+
export declare const getGcloudProjectNumber: (config: {
|
|
35
|
+
store?: CatladderStore;
|
|
36
|
+
}, projectId: string) => string;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getGcloudProjectNumber = exports.readCatladderStore = exports.getCatladderStorePath = exports.catladderStoreSchema = exports.CATLADDER_STORE_FILE = exports.CATLADDER_STORE_FILE_NAME = exports.CATLADDER_STORE_DIR = void 0;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const yaml_1 = require("yaml");
|
|
10
|
+
const zod_1 = require("zod");
|
|
11
|
+
exports.CATLADDER_STORE_DIR = ".catladder-store";
|
|
12
|
+
exports.CATLADDER_STORE_FILE_NAME = "store.yml";
|
|
13
|
+
exports.CATLADDER_STORE_FILE = `${exports.CATLADDER_STORE_DIR}/${exports.CATLADDER_STORE_FILE_NAME}`;
|
|
14
|
+
/**
|
|
15
|
+
* schema of `.catladder-store/store.yml` — non-secret, machine-fetched
|
|
16
|
+
* values that pipeline generation needs but that are neither part of the
|
|
17
|
+
* user-authored config nor derivable from it (e.g. gcloud project numbers).
|
|
18
|
+
*
|
|
19
|
+
* The store is written by `catladder project setup` and checked into the
|
|
20
|
+
* repository. Deleting the folder is safe: rerunning project setup
|
|
21
|
+
* restores it.
|
|
22
|
+
*/
|
|
23
|
+
exports.catladderStoreSchema = zod_1.z.object({
|
|
24
|
+
/**
|
|
25
|
+
* gcloud project facts, keyed by project id
|
|
26
|
+
*/
|
|
27
|
+
gcloudProjects: zod_1.z.record(zod_1.z.string(), zod_1.z.object({
|
|
28
|
+
projectNumber: zod_1.z.string().regex(/^\d+$/)
|
|
29
|
+
})).optional()
|
|
30
|
+
});
|
|
31
|
+
const getCatladderStorePath = directory => (0, path_1.join)(directory, exports.CATLADDER_STORE_DIR, exports.CATLADDER_STORE_FILE_NAME);
|
|
32
|
+
exports.getCatladderStorePath = getCatladderStorePath;
|
|
33
|
+
/**
|
|
34
|
+
* reads and validates the catladder store. Returns an empty store when the
|
|
35
|
+
* file does not exist (project setup has not run yet).
|
|
36
|
+
*/
|
|
37
|
+
const readCatladderStore = (directory = process.cwd()) => {
|
|
38
|
+
var _a;
|
|
39
|
+
const path = (0, exports.getCatladderStorePath)(directory);
|
|
40
|
+
if (!(0, fs_1.existsSync)(path)) {
|
|
41
|
+
return {};
|
|
42
|
+
}
|
|
43
|
+
return exports.catladderStoreSchema.parse((_a = (0, yaml_1.parse)((0, fs_1.readFileSync)(path, {
|
|
44
|
+
encoding: "utf-8"
|
|
45
|
+
}))) !== null && _a !== void 0 ? _a : {});
|
|
46
|
+
};
|
|
47
|
+
exports.readCatladderStore = readCatladderStore;
|
|
48
|
+
/**
|
|
49
|
+
* gcloud project number from the store — needed to compute deterministic
|
|
50
|
+
* cloud run urls (`<service>-<projectNumber>.<region>.run.app`) at
|
|
51
|
+
* generation time.
|
|
52
|
+
*
|
|
53
|
+
* Throws with a setup instruction when the value is missing, which makes
|
|
54
|
+
* catenv fail until `catladder project setup` has stored it.
|
|
55
|
+
*/
|
|
56
|
+
const getGcloudProjectNumber = (config, projectId) => {
|
|
57
|
+
var _a, _b, _c;
|
|
58
|
+
const projectNumber = (_c = (_b = (_a = config.store) === null || _a === void 0 ? void 0 : _a.gcloudProjects) === null || _b === void 0 ? void 0 : _b[projectId]) === null || _c === void 0 ? void 0 : _c.projectNumber;
|
|
59
|
+
if (!projectNumber) {
|
|
60
|
+
throw new Error(`Missing gcloud project number for project "${projectId}" in ${exports.CATLADDER_STORE_FILE}.\n` + `Run "catladder project setup" to fetch and store it.`);
|
|
61
|
+
}
|
|
62
|
+
return projectNumber;
|
|
63
|
+
};
|
|
64
|
+
exports.getGcloudProjectNumber = getGcloudProjectNumber;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../pipeline/src/store/index.ts"],"names":[],"mappings":";;;AAAA,2BAA8C;AAC9C,+BAA4B;AAC5B,+BAA6B;AAC7B,6BAAwB;AAEX,QAAA,mBAAmB,GAAG,kBAAkB,CAAC;AACzC,QAAA,yBAAyB,GAAG,WAAW,CAAC;AACxC,QAAA,oBAAoB,GAAG,GAAG,2BAAmB,IAAI,iCAAyB,EAAE,CAAC;AAE1F;;;;;;;;GAQG;AACU,QAAA,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C;;OAEG;IACH,cAAc,EAAE,OAAC;SACd,MAAM,CACL,OAAC,CAAC,MAAM,EAAE,EACV,OAAC,CAAC,MAAM,CAAC;QACP,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;KACzC,CAAC,CACH;SACA,QAAQ,EAAE;CACd,CAAC,CAAC;AAII,MAAM,qBAAqB,GAAG,CAAC,SAAiB,EAAE,EAAE,CACzD,IAAA,WAAI,EAAC,SAAS,EAAE,2BAAmB,EAAE,iCAAyB,CAAC,CAAC;AADrD,QAAA,qBAAqB,yBACgC;AAElE;;;GAGG;AACI,MAAM,kBAAkB,GAAG,CAChC,YAAoB,OAAO,CAAC,GAAG,EAAE,EACjB,EAAE;;IAClB,MAAM,IAAI,GAAG,IAAA,6BAAqB,EAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,4BAAoB,CAAC,KAAK,CAC/B,MAAA,IAAA,YAAK,EAAC,IAAA,iBAAY,EAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,mCAAI,EAAE,CACvD,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,kBAAkB,sBAU7B;AAEF;;;;;;;GAOG;AACI,MAAM,sBAAsB,GAAG,CACpC,MAAkC,EAClC,SAAiB,EACT,EAAE;;IACV,MAAM,aAAa,GACjB,MAAA,MAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,cAAc,0CAAG,SAAS,CAAC,0CAAE,aAAa,CAAC;IAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,8CAA8C,SAAS,QAAQ,4BAAoB,KAAK;YACtF,sDAAsD,CACzD,CAAC;IACJ,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAbW,QAAA,sBAAsB,0BAajC"}
|
|
@@ -7,6 +7,7 @@ import type { PipelineType, WorkspaceBuildConfig } from "..";
|
|
|
7
7
|
import type { AgentConfig } from "./agent";
|
|
8
8
|
import type { Hooks } from "./hooks";
|
|
9
9
|
import type { ReleaseConfig } from "./release";
|
|
10
|
+
import type { CatladderStore } from "../store";
|
|
10
11
|
export declare const ALL_PIPELINE_TRIGGERS: readonly ["mainBranch", "mr", "taggedRelease"];
|
|
11
12
|
export type PipelineTrigger = (typeof ALL_PIPELINE_TRIGGERS)[number];
|
|
12
13
|
/**
|
|
@@ -54,9 +55,25 @@ export type EnvVars = {
|
|
|
54
55
|
*/
|
|
55
56
|
public?: Record<string, any>;
|
|
56
57
|
/**
|
|
57
|
-
*
|
|
58
|
+
* env vars whose values live in the vault (managed with catladder/cli).
|
|
59
|
+
*
|
|
60
|
+
* Preferred form is a record with the kind per key:
|
|
61
|
+
* - "secret": sensitive — masked where the platform supports it
|
|
62
|
+
* - "variable": vault-stored but not sensitive (ids, host suffixes) —
|
|
63
|
+
* never masked, so log links stay clickable and environment urls work
|
|
64
|
+
* - an object for additional per-key config
|
|
65
|
+
*
|
|
66
|
+
* EXAMPLE: secret: { API_KEY: "secret", PROJECT_ID: "variable" }
|
|
67
|
+
*
|
|
68
|
+
* The plain string[] form (all keys secret) is deprecated.
|
|
58
69
|
*/
|
|
59
|
-
secret?: string[]
|
|
70
|
+
secret?: string[] | Record<string, SecretVarKind | SecretVarConfig>;
|
|
71
|
+
};
|
|
72
|
+
export type SecretVarKind = "secret" | "variable";
|
|
73
|
+
export type SecretVarConfig = {
|
|
74
|
+
kind?: SecretVarKind;
|
|
75
|
+
/** hidden env vars are not shown in config-secrets */
|
|
76
|
+
hidden?: boolean;
|
|
60
77
|
};
|
|
61
78
|
export type DefaultEnvConfig = {
|
|
62
79
|
/**
|
|
@@ -211,6 +228,14 @@ export type Config<C extends ConfigProps = never> = {
|
|
|
211
228
|
* how secrets are stored and shared (see {@link SecretsConfig})
|
|
212
229
|
*/
|
|
213
230
|
secrets?: SecretsConfig;
|
|
231
|
+
/**
|
|
232
|
+
* where the catladder job images come from:
|
|
233
|
+
* - central: catladder's central registry (default on gitlab)
|
|
234
|
+
* - repo: built in the repository's own registry from the image
|
|
235
|
+
* definitions shipped with catladder (default and required on
|
|
236
|
+
* github, where the central registry is not reachable)
|
|
237
|
+
*/
|
|
238
|
+
jobImages?: "central" | "repo";
|
|
214
239
|
/**
|
|
215
240
|
* name of the customer or group
|
|
216
241
|
*/
|
|
@@ -249,5 +274,14 @@ export type Config<C extends ConfigProps = never> = {
|
|
|
249
274
|
* configure tagged releases
|
|
250
275
|
*/
|
|
251
276
|
releases?: ReleaseConfig;
|
|
277
|
+
/**
|
|
278
|
+
* contents of `.catladder-store/store.yml` — non-secret, machine-fetched
|
|
279
|
+
* values written by `catladder project setup` (e.g. gcloud project
|
|
280
|
+
* numbers).
|
|
281
|
+
*
|
|
282
|
+
* Attached automatically when the config is read from disk; do not set
|
|
283
|
+
* this manually in catladder.ts.
|
|
284
|
+
*/
|
|
285
|
+
store?: CatladderStore;
|
|
252
286
|
};
|
|
253
287
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../pipeline/src/types/config.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../pipeline/src/types/config.ts"],"names":[],"mappings":";;;AAYa,QAAA,qBAAqB,GAAG;IACnC,YAAY;IACZ,IAAI;IACJ,eAAe;CACP,CAAC;AAGX;;;GAGG;AACU,QAAA,SAAS,GAAG;IACvB,GAAG,EAAE;QACH,QAAQ,EAAE,CAAC,YAAY,CAAC;KACzB;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,CAAC,IAAI,CAAC;KACjB;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,CAAC,eAAe,CAAC;KAC5B;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,CAAC,eAAe,CAAC;KAC5B;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;KACb;CACO,CAAC;AAEX;;;;GAIG;AACI,MAAM,oBAAoB,GAAG,CAAC,OAAwB,EAAE,EAAE,CAC/D,MAAM,CAAC,OAAO,CAAC,iBAAS,CAAC;KACtB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CACf,CAAC,CAAC,QAAuC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAC7D;KACA,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAY,CAAC,CAAC;AALnB,QAAA,oBAAoB,wBAKD;AAEnB,QAAA,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAS,CAAC,CAAC;AACtC,QAAA,iBAAiB,GAAG,oBAAyB,CAAC;AAGpD,MAAM,aAAa,GAAG,CAAC,GAAW,EAAkB,EAAE;IAC3D,OAAO,GAAG,IAAI,iBAAS,CAAC;AAC1B,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB"}
|
|
@@ -24,6 +24,10 @@ export type GithubJob = {
|
|
|
24
24
|
needs?: string[];
|
|
25
25
|
container?: {
|
|
26
26
|
image: string;
|
|
27
|
+
credentials?: {
|
|
28
|
+
username: string;
|
|
29
|
+
password: string;
|
|
30
|
+
};
|
|
27
31
|
} | string;
|
|
28
32
|
services?: Record<string, GithubService>;
|
|
29
33
|
environment?: {
|
|
@@ -38,6 +42,7 @@ export type GithubJob = {
|
|
|
38
42
|
export type GithubWorkflow = {
|
|
39
43
|
name: string;
|
|
40
44
|
on: Record<string, unknown>;
|
|
45
|
+
permissions?: Record<string, string>;
|
|
41
46
|
concurrency?: {
|
|
42
47
|
group: string;
|
|
43
48
|
"cancel-in-progress"?: boolean;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { UnspecifiedEnvVars } from "..";
|
|
2
|
+
import type { CatladderImageRef } from "../runner";
|
|
2
3
|
import type { CacheConfig } from "../build/types";
|
|
3
4
|
import type { Artifacts, GitlabJobCache, GitlabJobDef, GitlabJobImage, GitlabRule } from "./gitlab-types";
|
|
4
5
|
export type CatladderJobCache = GitlabJobCache;
|
|
@@ -12,6 +13,11 @@ export type CatladderJobNeed = string | {
|
|
|
12
13
|
job: string;
|
|
13
14
|
artifacts: boolean;
|
|
14
15
|
workspaceName: string;
|
|
16
|
+
} | {
|
|
17
|
+
job: string;
|
|
18
|
+
artifacts: boolean;
|
|
19
|
+
optional?: boolean;
|
|
20
|
+
global: true;
|
|
15
21
|
};
|
|
16
22
|
export declare const CAPABILITIES: readonly ["build", "buildArtifacts", "dockerImage", "qualityGate", "deployment"];
|
|
17
23
|
/**
|
|
@@ -164,9 +170,11 @@ export type GitlabJobFields = {
|
|
|
164
170
|
*/
|
|
165
171
|
services?: GitlabJobDef["services"];
|
|
166
172
|
/**
|
|
167
|
-
* image to use
|
|
173
|
+
* image to use: a concrete image or a reference to a
|
|
174
|
+
* catladder-provided job image (resolved by the backend according to
|
|
175
|
+
* the `jobImages` mode)
|
|
168
176
|
*/
|
|
169
|
-
image?: GitlabJobImage;
|
|
177
|
+
image?: GitlabJobImage | CatladderImageRef;
|
|
170
178
|
/**
|
|
171
179
|
* whether failures are allowed
|
|
172
180
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../../../pipeline/src/types/jobs.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../../../pipeline/src/types/jobs.ts"],"names":[],"mappings":";;;AAGA,8DAA2D;AAU9C,QAAA,WAAW,GAAG;IACzB,OAAO;IACP,MAAM;IACN,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,MAAM;CACE,CAAC;AAWE,QAAA,YAAY,GAAG;IAC1B,OAAO;IACP,gBAAgB;IAChB,aAAa;IACb,aAAa;IACb,YAAY;CACJ,CAAC;AAsNX;;;;;;;GAOG;AACH,4JAA4J;AAC5J,MAAa,YAAY;IACvB,YAAY,IAAyB;QACnC,uDAAuD;QACvD,2DAA2D;QAC3D,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAA,iCAAe,EAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,IAAI,CACT,GAAkD;QAElD,OAAO,GAAG,YAAY,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IACnE,CAAC;CACF;AAZD,oCAYC"}
|
|
@@ -2,5 +2,10 @@ export declare const allowFailureInScripts: (script: string[]) => string[];
|
|
|
2
2
|
export declare const sanitizeForBashVariable: (name: string) => string;
|
|
3
3
|
export declare const repeatOnFailure: (command: string, options: {
|
|
4
4
|
pauseInSeconds: number;
|
|
5
|
+
/**
|
|
6
|
+
* fail the job after this many attempts — permanent errors (e.g. a
|
|
7
|
+
* 403) must fail loudly instead of retrying until the job timeout
|
|
8
|
+
*/
|
|
9
|
+
maxAttempts: number;
|
|
5
10
|
}) => string;
|
|
6
11
|
export declare const collapseableSection: (name: string, header: string) => (commands: string[]) => string[];
|
|
@@ -14,8 +14,14 @@ const sanitizeForBashVariable = name => name.replace(/-/g, "_");
|
|
|
14
14
|
exports.sanitizeForBashVariable = sanitizeForBashVariable;
|
|
15
15
|
const repeatOnFailure = (command, options) => {
|
|
16
16
|
return `
|
|
17
|
+
_attempt=0
|
|
17
18
|
until ${command}
|
|
18
19
|
do
|
|
20
|
+
_attempt=$((_attempt+1))
|
|
21
|
+
if [ "$_attempt" -ge ${options.maxAttempts} ]; then
|
|
22
|
+
echo "giving up after ${options.maxAttempts} attempts"
|
|
23
|
+
exit 1
|
|
24
|
+
fi
|
|
19
25
|
echo "Trying again."
|
|
20
26
|
sleep ${options.pauseInSeconds}
|
|
21
27
|
done
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitlab.js","sourceRoot":"","sources":["../../../../../pipeline/src/utils/gitlab.ts"],"names":[],"mappings":";;;AAAA,oEAAwE;AAEjE,MAAM,qBAAqB,GAAG,CAAC,MAAgB,EAAY,EAAE,CAAC;IACnE,QAAQ,EAAE,4BAA4B;IACtC,GAAG,MAAM;IACT,QAAQ,EAAE,WAAW;CACtB,CAAC;AAJW,QAAA,qBAAqB,yBAIhC;AAEK,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAAE,EAAE,CACtD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AADb,QAAA,uBAAuB,2BACV;AAEnB,MAAM,eAAe,GAAG,CAC7B,OAAe,EACf,
|
|
1
|
+
{"version":3,"file":"gitlab.js","sourceRoot":"","sources":["../../../../../pipeline/src/utils/gitlab.ts"],"names":[],"mappings":";;;AAAA,oEAAwE;AAEjE,MAAM,qBAAqB,GAAG,CAAC,MAAgB,EAAY,EAAE,CAAC;IACnE,QAAQ,EAAE,4BAA4B;IACtC,GAAG,MAAM;IACT,QAAQ,EAAE,WAAW;CACtB,CAAC;AAJW,QAAA,qBAAqB,yBAIhC;AAEK,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAAE,EAAE,CACtD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AADb,QAAA,uBAAuB,2BACV;AAEnB,MAAM,eAAe,GAAG,CAC7B,OAAe,EACf,OAOC,EACO,EAAE;IACV,OAAO;;YAEG,OAAO;;;6BAGU,OAAO,CAAC,WAAW;gCAChB,OAAO,CAAC,WAAW;;;;cAIrC,OAAO,CAAC,cAAc;;GAEjC,CAAC;AACJ,CAAC,CAAC;AAxBW,QAAA,eAAe,mBAwB1B;AAEF,MAAM,KAAK,GAAG,IAAA,oDAA4B,EACxC,4BAA4B,EAC5B;;;CAGD,CACA,CAAC;AAEF,MAAM,GAAG,GAAG,IAAA,oDAA4B,EACtC,0BAA0B,EAC1B;;CAED,CACA,CAAC;AAEK,MAAM,mBAAmB,GAC9B,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE,CACjC,CAAC,QAAkB,EAAY,EAAE;IAC/B,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,IAAI,MAAM,GAAG,CAAC;QACxC,GAAG,QAAQ;QACX,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC;KACxB,CAAC;AACJ,CAAC,CAAC;AARS,QAAA,mBAAmB,uBAQ5B"}
|
|
@@ -12,6 +12,12 @@ export declare class FileWriter {
|
|
|
12
12
|
constructor(config: Config);
|
|
13
13
|
protected writeTheFile(path: string, content: string): Promise<void>;
|
|
14
14
|
protected getBaseHookContext(path: string): Promise<BaseHookContext>;
|
|
15
|
+
/**
|
|
16
|
+
* writes content verbatim (no auto-generated header) — e.g. for
|
|
17
|
+
* materialized dockerfiles, where a leading comment would break
|
|
18
|
+
* parser directives like `# syntax = ...`
|
|
19
|
+
*/
|
|
20
|
+
writeGeneratedFileRaw(path: string, content: string): Promise<void>;
|
|
15
21
|
writeGeneratedFile(path: string, content: string, options: WriteFileOptions): Promise<void>;
|
|
16
22
|
writeYamlfile(path: string, data: any): Promise<void>;
|
|
17
23
|
protected getAutoGeneratedHeader(commentChar: string): string;
|
|
@@ -41,6 +41,14 @@ class FileWriter {
|
|
|
41
41
|
extension: (_b = path.split(".").pop()) !== null && _b !== void 0 ? _b : ""
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* writes content verbatim (no auto-generated header) — e.g. for
|
|
46
|
+
* materialized dockerfiles, where a leading comment would break
|
|
47
|
+
* parser directives like `# syntax = ...`
|
|
48
|
+
*/
|
|
49
|
+
async writeGeneratedFileRaw(path, content) {
|
|
50
|
+
await this.writeTheFile(path, content);
|
|
51
|
+
}
|
|
44
52
|
async writeGeneratedFile(path, content, options) {
|
|
45
53
|
await this.writeTheFile(path, [this.getAutoGeneratedHeader(options.commentChar), content].join("\n"));
|
|
46
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeFiles.js","sourceRoot":"","sources":["../../../../../pipeline/src/utils/writeFiles.ts"],"names":[],"mappings":";;;AAAA,0CAAwC;AACxC,+BAAiC;AAYpB,QAAA,oBAAoB,GAAqB;IACpD,iEAAiE;IACjE,SAAS,EAAE,CAAC;IACZ,4DAA4D;IAC5D,kBAAkB,EAAE,IAAI;IACxB,qEAAqE;IACrE,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF,MAAa,UAAU;IACd,MAAM,CAAC,MAAM,CAAC,MAAc;QACjC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,OAAe;;QACxD,MAAM,kBAAkB,GACtB,MAAM,CAAA,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,0CAAE,wBAAwB,mDAAG;YAClD,GAAG,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACxC,OAAO;SACR,CAAC,CAAA,CAAC;QACL,MAAM,IAAA,oBAAS,EAAC,IAAI,EAAE,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,OAAO,EAAE;YACnD,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAC,IAAY;;QAC7C,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,mCAAI,EAAE,CAAC;QAC7C,OAAO;YACL,QAAQ;YACR,IAAI;YACJ,SAAS,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,mCAAI,EAAE;SACvC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAC7B,IAAY,EACZ,OAAe,EACf,OAAyB;QAEzB,MAAM,IAAI,CAAC,YAAY,CACrB,IAAI,EACJ,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACvE,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,IAAS;;QAChD,MAAM,eAAe,GAAG,MAAM,CAAA,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,0CAAE,wBAAwB,mDACvE;YACE,GAAG,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI;SACL,CACF,CAAA,CAAC;QACF,OAAO,IAAI,CAAC,kBAAkB,CAC5B,IAAI,EACJ,IAAA,gBAAS,EAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,IAAI,EAAE,4BAAoB,CAAC,EACxD;YACE,WAAW,EAAE,GAAG;SACjB,CACF,CAAC;IACJ,CAAC;IAES,sBAAsB,CAAC,WAAmB;QAClD,OAAO;YACL,mDAAmD;YACnD,2CAA2C;YAC3C,sCAAsC;YACtC,mDAAmD;SACpD;aACE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,WAAW,IAAI,IAAI,EAAE,CAAC;aACvC,IAAI,CAAC,IAAI,CAAC;aACV,MAAM,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"writeFiles.js","sourceRoot":"","sources":["../../../../../pipeline/src/utils/writeFiles.ts"],"names":[],"mappings":";;;AAAA,0CAAwC;AACxC,+BAAiC;AAYpB,QAAA,oBAAoB,GAAqB;IACpD,iEAAiE;IACjE,SAAS,EAAE,CAAC;IACZ,4DAA4D;IAC5D,kBAAkB,EAAE,IAAI;IACxB,qEAAqE;IACrE,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF,MAAa,UAAU;IACd,MAAM,CAAC,MAAM,CAAC,MAAc;QACjC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,OAAe;;QACxD,MAAM,kBAAkB,GACtB,MAAM,CAAA,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,0CAAE,wBAAwB,mDAAG;YAClD,GAAG,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACxC,OAAO;SACR,CAAC,CAAA,CAAC;QACL,MAAM,IAAA,oBAAS,EAAC,IAAI,EAAE,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,OAAO,EAAE;YACnD,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAC,IAAY;;QAC7C,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,mCAAI,EAAE,CAAC;QAC7C,OAAO;YACL,QAAQ;YACR,IAAI;YACJ,SAAS,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,mCAAI,EAAE;SACvC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,qBAAqB,CAAC,IAAY,EAAE,OAAe;QAC9D,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAC7B,IAAY,EACZ,OAAe,EACf,OAAyB;QAEzB,MAAM,IAAI,CAAC,YAAY,CACrB,IAAI,EACJ,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACvE,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,IAAS;;QAChD,MAAM,eAAe,GAAG,MAAM,CAAA,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,0CAAE,wBAAwB,mDACvE;YACE,GAAG,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI;SACL,CACF,CAAA,CAAC;QACF,OAAO,IAAI,CAAC,kBAAkB,CAC5B,IAAI,EACJ,IAAA,gBAAS,EAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,IAAI,EAAE,4BAAoB,CAAC,EACxD;YACE,WAAW,EAAE,GAAG;SACjB,CACF,CAAC;IACJ,CAAC;IAES,sBAAsB,CAAC,WAAmB;QAClD,OAAO;YACL,mDAAmD;YACnD,2CAA2C;YAC3C,sCAAsC;YACtC,mDAAmD;SACpD;aACE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,WAAW,IAAI,IAAI,EAAE,CAAC;aACvC,IAAI,CAAC,IAAI,CAAC;aACV,MAAM,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;CACF;AA5ED,gCA4EC"}
|