@catladder/cli 5.3.2 → 5.4.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/bundles/catenv/index.js +64 -7
- package/dist/bundles/cli/index.js +64 -7
- package/dist/bundles/skills/catladder-builds/SKILL.md +4 -0
- package/dist/bundles/skills/catladder-builds/references/build-types.md +1 -0
- package/dist/packages/pipeline/src/build/docker.d.ts +6 -0
- package/dist/packages/pipeline/src/build/docker.js +49 -2
- package/dist/packages/pipeline/src/build/docker.js.map +1 -1
- package/dist/packages/pipeline/src/build/types.d.ts +29 -0
- package/dist/packages/pipeline/src/build/types.js.map +1 -1
- package/dist/packages/pipeline/src/deploy/cloudRun/createJobs/execute/schedules.js +3 -1
- package/dist/packages/pipeline/src/deploy/cloudRun/createJobs/execute/schedules.js.map +1 -1
- package/dist/packages/pipeline/src/deploy/cloudRun/utils/cloudRunExecutionUrl.d.ts +1 -1
- package/dist/packages/pipeline/src/deploy/cloudRun/utils/cloudRunExecutionUrl.js +6 -1
- package/dist/packages/pipeline/src/deploy/cloudRun/utils/cloudRunExecutionUrl.js.map +1 -1
- package/dist/packages/pipeline/src/pipeline/packageManager.js +6 -3
- package/dist/packages/pipeline/src/pipeline/packageManager.js.map +1 -1
- package/dist/skills/catladder-builds/SKILL.md +4 -0
- package/dist/skills/catladder-builds/references/build-types.md +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -6082,7 +6082,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
6082
6082
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
6083
6083
|
};
|
|
6084
6084
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
6085
|
-
exports.hasDockerfile = exports.getDockerBuildDefaultScript = exports.getDockerBuildScriptWithBuiltInDockerFile = exports.gitlabDockerLogin = exports.DockerBuildJob = exports.getDockerJobBaseProps = exports.DOCKER_BUILD_JOB_NAME = exports.getDockerBuildVariables = exports.requiresDockerBuild = exports.getDockerImageVariables = void 0;
|
|
6085
|
+
exports.hasDockerfile = exports.getDockerBuildDefaultScript = exports.getDockerBuildScriptWithBuiltInDockerFile = exports.gitlabDockerLogin = exports.DockerBuildJob = exports.getDockerJobBaseProps = exports.DOCKER_BUILD_JOB_NAME = exports.getDockerBuildVariables = exports.requiresDockerBuild = exports.getReuseMainBranchImageScript = exports.getDockerImageVariables = void 0;
|
|
6086
6086
|
const fs_1 = __nccwpck_require__(79896);
|
|
6087
6087
|
const lodash_es_1 = __nccwpck_require__(50210);
|
|
6088
6088
|
const path_1 = __importDefault(__nccwpck_require__(16928));
|
|
@@ -6090,6 +6090,7 @@ const deploy_1 = __nccwpck_require__(3659);
|
|
|
6090
6090
|
const artifactsRegistry_1 = __nccwpck_require__(44330);
|
|
6091
6091
|
const gcloudServiceAccountLoginCommands_1 = __nccwpck_require__(54799);
|
|
6092
6092
|
const ciVariables_1 = __nccwpck_require__(91215);
|
|
6093
|
+
const configruedEnvs_1 = __nccwpck_require__(38866);
|
|
6093
6094
|
const runner_1 = __nccwpck_require__(92146);
|
|
6094
6095
|
const jobs_1 = __nccwpck_require__(98521);
|
|
6095
6096
|
const gitlab_1 = __nccwpck_require__(86962);
|
|
@@ -6121,6 +6122,52 @@ const getDockerImageVariables = (context) => {
|
|
|
6121
6122
|
};
|
|
6122
6123
|
};
|
|
6123
6124
|
exports.getDockerImageVariables = getDockerImageVariables;
|
|
6125
|
+
const shellQuote = (value) => `'${value.replace(/'/g, `'\\''`)}'`;
|
|
6126
|
+
/**
|
|
6127
|
+
* script that copies the main branch image instead of building it, see
|
|
6128
|
+
* `build.reuseMainBranchImage`. Exits the job when it
|
|
6129
|
+
* reused an image, so the build script after it only runs as fallback.
|
|
6130
|
+
*/
|
|
6131
|
+
const getReuseMainBranchImageScript = (context) => {
|
|
6132
|
+
var _a, _b;
|
|
6133
|
+
const buildConfig = context.build.config;
|
|
6134
|
+
// only standalone builds have the option, workspace builds don't
|
|
6135
|
+
const option = "reuseMainBranchImage" in buildConfig
|
|
6136
|
+
? buildConfig.reuseMainBranchImage
|
|
6137
|
+
: undefined;
|
|
6138
|
+
const { fullConfig, name, env } = context;
|
|
6139
|
+
if (!option ||
|
|
6140
|
+
!(0, configruedEnvs_1.getAllEnvsByTrigger)(fullConfig, name, "taggedRelease").includes(env)) {
|
|
6141
|
+
return [];
|
|
6142
|
+
}
|
|
6143
|
+
if ((0, deploy_1.isOfDeployType)((_a = context.deploy) === null || _a === void 0 ? void 0 : _a.config, "google-cloudrun")) {
|
|
6144
|
+
throw new Error(`${name}: build.reuseMainBranchImage is not supported for google-cloudrun deploys`);
|
|
6145
|
+
}
|
|
6146
|
+
const [mainBranchEnv] = (0, configruedEnvs_1.getAllEnvsByTrigger)(fullConfig, name, "mainBranch");
|
|
6147
|
+
if (!mainBranchEnv) {
|
|
6148
|
+
throw new Error(`${name}: build.reuseMainBranchImage needs an env that builds on the main branch (e.g. dev)`);
|
|
6149
|
+
}
|
|
6150
|
+
const releaseFiles = (_b = (option === true ? undefined : option.releaseFiles)) !== null && _b !== void 0 ? _b : [
|
|
6151
|
+
"CHANGELOG.md",
|
|
6152
|
+
];
|
|
6153
|
+
const sha = (0, ciVariables_1.getCiVariable)(context, "commitSha");
|
|
6154
|
+
return [
|
|
6155
|
+
...(0, exports.gitlabDockerLogin)(context),
|
|
6156
|
+
`REUSE_IMAGE="${(0, ciVariables_1.getCiVariable)(context, "registryImage")}/${mainBranchEnv}/${name}"`,
|
|
6157
|
+
`reuse_sha=""
|
|
6158
|
+
if docker buildx imagetools inspect "$REUSE_IMAGE:${sha}" >/dev/null 2>&1; then
|
|
6159
|
+
reuse_sha="${sha}"
|
|
6160
|
+
elif git fetch --quiet --depth=2 origin "${sha}" && [ -z "$(git diff --name-only "${sha}^" "${sha}" | grep -vxF ${releaseFiles.map((f) => `-e ${shellQuote(f)}`).join(" ")})" ]; then
|
|
6161
|
+
reuse_sha="$(git rev-parse "${sha}^")"
|
|
6162
|
+
fi
|
|
6163
|
+
if [ -n "$reuse_sha" ] && docker buildx imagetools create --prefer-index=false --tag "$DOCKER_IMAGE:$DOCKER_IMAGE_TAG" "$REUSE_IMAGE:$reuse_sha"; then
|
|
6164
|
+
echo "♻️ reused $REUSE_IMAGE:$reuse_sha, skipping the build"
|
|
6165
|
+
exit 0
|
|
6166
|
+
fi
|
|
6167
|
+
echo "no main branch image to reuse, building the image"`,
|
|
6168
|
+
];
|
|
6169
|
+
};
|
|
6170
|
+
exports.getReuseMainBranchImageScript = getReuseMainBranchImageScript;
|
|
6124
6171
|
/**
|
|
6125
6172
|
* Weather the context requires a docker build
|
|
6126
6173
|
*/
|
|
@@ -6192,7 +6239,7 @@ class DockerBuildJob extends jobs_1.CatladderJob {
|
|
|
6192
6239
|
provides: ["dockerImage"],
|
|
6193
6240
|
caches: cache,
|
|
6194
6241
|
...(0, exports.getDockerJobBaseProps)(),
|
|
6195
|
-
script: script || [],
|
|
6242
|
+
script: [...(0, exports.getReuseMainBranchImageScript)(context), ...(script || [])],
|
|
6196
6243
|
variables: {
|
|
6197
6244
|
...(0, removeUndefined_1.removeUndefined)((0, exports.getDockerBuildVariables)(context)),
|
|
6198
6245
|
...(0, removeUndefined_1.removeUndefined)(variables !== null && variables !== void 0 ? variables : {}),
|
|
@@ -9861,7 +9908,9 @@ const getSchedulerArgs = (scheduler, context) => {
|
|
|
9861
9908
|
appFullName: context.environment.fullName,
|
|
9862
9909
|
projectId,
|
|
9863
9910
|
region,
|
|
9864
|
-
|
|
9911
|
+
// lands in a script line (not an exported variable), so the
|
|
9912
|
+
// raw expression is what the shell has to see
|
|
9913
|
+
}).toString(),
|
|
9865
9914
|
"message-body": body
|
|
9866
9915
|
? '"' + (0, bash_1.bashEscape)(JSON.stringify(body)) + '"'
|
|
9867
9916
|
: undefined,
|
|
@@ -10301,11 +10350,16 @@ exports.GCLOUD_RUN_DEPLOY_TYPE = {
|
|
|
10301
10350
|
|
|
10302
10351
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
10303
10352
|
exports.getCloudRunJobExecuteUrl = void 0;
|
|
10353
|
+
const bash_1 = __nccwpck_require__(94143);
|
|
10304
10354
|
const jobName_1 = __nccwpck_require__(65576);
|
|
10305
10355
|
function getCloudRunJobExecuteUrl(jobName, { region, projectId, appFullName, }) {
|
|
10306
10356
|
const uriBase = `https://${region}-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/${projectId}/jobs`;
|
|
10307
10357
|
const fullJobName = (0, jobName_1.getCloudRunJobName)(appFullName, jobName);
|
|
10308
|
-
|
|
10358
|
+
// joined, not interpolated: on review envs the job name is a bash
|
|
10359
|
+
// expression (the review slug), and a template string would demote
|
|
10360
|
+
// it to a plain string — its quotes then get escaped as literal
|
|
10361
|
+
// characters when the variable is exported
|
|
10362
|
+
return (0, bash_1.joinBashExpressions)([uriBase, "/", fullJobName, ":run"]);
|
|
10309
10363
|
}
|
|
10310
10364
|
exports.getCloudRunJobExecuteUrl = getCloudRunJobExecuteUrl;
|
|
10311
10365
|
//# sourceMappingURL=cloudRunExecutionUrl.js.map
|
|
@@ -12687,15 +12741,18 @@ const getPackageManagerInfoForComponent = async (config, componentName) => {
|
|
|
12687
12741
|
const patchFiles = baseInfo.type === "pnpm"
|
|
12688
12742
|
? (0, pnpmUtils_1.getPnpmPatchFiles)(componentIsInWorkspace ? workspaceRoot : component.dir)
|
|
12689
12743
|
: [];
|
|
12744
|
+
// sort the variable parts: their order depends on package.json key order
|
|
12745
|
+
// and dependency traversal, and an unstable order rewrites the generated
|
|
12746
|
+
// pipeline files on every regeneration without any real change
|
|
12690
12747
|
const pathsToCopyInDocker = [
|
|
12691
12748
|
...new Set([
|
|
12692
12749
|
packageJson,
|
|
12693
12750
|
...(workspacePackageJson ? [workspacePackageJson] : []),
|
|
12694
12751
|
lockFile,
|
|
12695
12752
|
...configFilePaths,
|
|
12696
|
-
...allWorkspaceManifests,
|
|
12697
|
-
...patchFiles,
|
|
12698
|
-
...currentWorkspaceDependencies,
|
|
12753
|
+
...[...allWorkspaceManifests].sort(),
|
|
12754
|
+
...[...patchFiles].sort(),
|
|
12755
|
+
...[...currentWorkspaceDependencies].sort(),
|
|
12699
12756
|
]),
|
|
12700
12757
|
];
|
|
12701
12758
|
return {
|
|
@@ -12659,7 +12659,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12659
12659
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
12660
12660
|
};
|
|
12661
12661
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
12662
|
-
exports.hasDockerfile = exports.getDockerBuildDefaultScript = exports.getDockerBuildScriptWithBuiltInDockerFile = exports.gitlabDockerLogin = exports.DockerBuildJob = exports.getDockerJobBaseProps = exports.DOCKER_BUILD_JOB_NAME = exports.getDockerBuildVariables = exports.requiresDockerBuild = exports.getDockerImageVariables = void 0;
|
|
12662
|
+
exports.hasDockerfile = exports.getDockerBuildDefaultScript = exports.getDockerBuildScriptWithBuiltInDockerFile = exports.gitlabDockerLogin = exports.DockerBuildJob = exports.getDockerJobBaseProps = exports.DOCKER_BUILD_JOB_NAME = exports.getDockerBuildVariables = exports.requiresDockerBuild = exports.getReuseMainBranchImageScript = exports.getDockerImageVariables = void 0;
|
|
12663
12663
|
const fs_1 = __nccwpck_require__(79896);
|
|
12664
12664
|
const lodash_es_1 = __nccwpck_require__(50210);
|
|
12665
12665
|
const path_1 = __importDefault(__nccwpck_require__(16928));
|
|
@@ -12667,6 +12667,7 @@ const deploy_1 = __nccwpck_require__(3659);
|
|
|
12667
12667
|
const artifactsRegistry_1 = __nccwpck_require__(44330);
|
|
12668
12668
|
const gcloudServiceAccountLoginCommands_1 = __nccwpck_require__(54799);
|
|
12669
12669
|
const ciVariables_1 = __nccwpck_require__(91215);
|
|
12670
|
+
const configruedEnvs_1 = __nccwpck_require__(38866);
|
|
12670
12671
|
const runner_1 = __nccwpck_require__(92146);
|
|
12671
12672
|
const jobs_1 = __nccwpck_require__(98521);
|
|
12672
12673
|
const gitlab_1 = __nccwpck_require__(86962);
|
|
@@ -12698,6 +12699,52 @@ const getDockerImageVariables = (context) => {
|
|
|
12698
12699
|
};
|
|
12699
12700
|
};
|
|
12700
12701
|
exports.getDockerImageVariables = getDockerImageVariables;
|
|
12702
|
+
const shellQuote = (value) => `'${value.replace(/'/g, `'\\''`)}'`;
|
|
12703
|
+
/**
|
|
12704
|
+
* script that copies the main branch image instead of building it, see
|
|
12705
|
+
* `build.reuseMainBranchImage`. Exits the job when it
|
|
12706
|
+
* reused an image, so the build script after it only runs as fallback.
|
|
12707
|
+
*/
|
|
12708
|
+
const getReuseMainBranchImageScript = (context) => {
|
|
12709
|
+
var _a, _b;
|
|
12710
|
+
const buildConfig = context.build.config;
|
|
12711
|
+
// only standalone builds have the option, workspace builds don't
|
|
12712
|
+
const option = "reuseMainBranchImage" in buildConfig
|
|
12713
|
+
? buildConfig.reuseMainBranchImage
|
|
12714
|
+
: undefined;
|
|
12715
|
+
const { fullConfig, name, env } = context;
|
|
12716
|
+
if (!option ||
|
|
12717
|
+
!(0, configruedEnvs_1.getAllEnvsByTrigger)(fullConfig, name, "taggedRelease").includes(env)) {
|
|
12718
|
+
return [];
|
|
12719
|
+
}
|
|
12720
|
+
if ((0, deploy_1.isOfDeployType)((_a = context.deploy) === null || _a === void 0 ? void 0 : _a.config, "google-cloudrun")) {
|
|
12721
|
+
throw new Error(`${name}: build.reuseMainBranchImage is not supported for google-cloudrun deploys`);
|
|
12722
|
+
}
|
|
12723
|
+
const [mainBranchEnv] = (0, configruedEnvs_1.getAllEnvsByTrigger)(fullConfig, name, "mainBranch");
|
|
12724
|
+
if (!mainBranchEnv) {
|
|
12725
|
+
throw new Error(`${name}: build.reuseMainBranchImage needs an env that builds on the main branch (e.g. dev)`);
|
|
12726
|
+
}
|
|
12727
|
+
const releaseFiles = (_b = (option === true ? undefined : option.releaseFiles)) !== null && _b !== void 0 ? _b : [
|
|
12728
|
+
"CHANGELOG.md",
|
|
12729
|
+
];
|
|
12730
|
+
const sha = (0, ciVariables_1.getCiVariable)(context, "commitSha");
|
|
12731
|
+
return [
|
|
12732
|
+
...(0, exports.gitlabDockerLogin)(context),
|
|
12733
|
+
`REUSE_IMAGE="${(0, ciVariables_1.getCiVariable)(context, "registryImage")}/${mainBranchEnv}/${name}"`,
|
|
12734
|
+
`reuse_sha=""
|
|
12735
|
+
if docker buildx imagetools inspect "$REUSE_IMAGE:${sha}" >/dev/null 2>&1; then
|
|
12736
|
+
reuse_sha="${sha}"
|
|
12737
|
+
elif git fetch --quiet --depth=2 origin "${sha}" && [ -z "$(git diff --name-only "${sha}^" "${sha}" | grep -vxF ${releaseFiles.map((f) => `-e ${shellQuote(f)}`).join(" ")})" ]; then
|
|
12738
|
+
reuse_sha="$(git rev-parse "${sha}^")"
|
|
12739
|
+
fi
|
|
12740
|
+
if [ -n "$reuse_sha" ] && docker buildx imagetools create --prefer-index=false --tag "$DOCKER_IMAGE:$DOCKER_IMAGE_TAG" "$REUSE_IMAGE:$reuse_sha"; then
|
|
12741
|
+
echo "♻️ reused $REUSE_IMAGE:$reuse_sha, skipping the build"
|
|
12742
|
+
exit 0
|
|
12743
|
+
fi
|
|
12744
|
+
echo "no main branch image to reuse, building the image"`,
|
|
12745
|
+
];
|
|
12746
|
+
};
|
|
12747
|
+
exports.getReuseMainBranchImageScript = getReuseMainBranchImageScript;
|
|
12701
12748
|
/**
|
|
12702
12749
|
* Weather the context requires a docker build
|
|
12703
12750
|
*/
|
|
@@ -12769,7 +12816,7 @@ class DockerBuildJob extends jobs_1.CatladderJob {
|
|
|
12769
12816
|
provides: ["dockerImage"],
|
|
12770
12817
|
caches: cache,
|
|
12771
12818
|
...(0, exports.getDockerJobBaseProps)(),
|
|
12772
|
-
script: script || [],
|
|
12819
|
+
script: [...(0, exports.getReuseMainBranchImageScript)(context), ...(script || [])],
|
|
12773
12820
|
variables: {
|
|
12774
12821
|
...(0, removeUndefined_1.removeUndefined)((0, exports.getDockerBuildVariables)(context)),
|
|
12775
12822
|
...(0, removeUndefined_1.removeUndefined)(variables !== null && variables !== void 0 ? variables : {}),
|
|
@@ -16438,7 +16485,9 @@ const getSchedulerArgs = (scheduler, context) => {
|
|
|
16438
16485
|
appFullName: context.environment.fullName,
|
|
16439
16486
|
projectId,
|
|
16440
16487
|
region,
|
|
16441
|
-
|
|
16488
|
+
// lands in a script line (not an exported variable), so the
|
|
16489
|
+
// raw expression is what the shell has to see
|
|
16490
|
+
}).toString(),
|
|
16442
16491
|
"message-body": body
|
|
16443
16492
|
? '"' + (0, bash_1.bashEscape)(JSON.stringify(body)) + '"'
|
|
16444
16493
|
: undefined,
|
|
@@ -16878,11 +16927,16 @@ exports.GCLOUD_RUN_DEPLOY_TYPE = {
|
|
|
16878
16927
|
|
|
16879
16928
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
16880
16929
|
exports.getCloudRunJobExecuteUrl = void 0;
|
|
16930
|
+
const bash_1 = __nccwpck_require__(94143);
|
|
16881
16931
|
const jobName_1 = __nccwpck_require__(65576);
|
|
16882
16932
|
function getCloudRunJobExecuteUrl(jobName, { region, projectId, appFullName, }) {
|
|
16883
16933
|
const uriBase = `https://${region}-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/${projectId}/jobs`;
|
|
16884
16934
|
const fullJobName = (0, jobName_1.getCloudRunJobName)(appFullName, jobName);
|
|
16885
|
-
|
|
16935
|
+
// joined, not interpolated: on review envs the job name is a bash
|
|
16936
|
+
// expression (the review slug), and a template string would demote
|
|
16937
|
+
// it to a plain string — its quotes then get escaped as literal
|
|
16938
|
+
// characters when the variable is exported
|
|
16939
|
+
return (0, bash_1.joinBashExpressions)([uriBase, "/", fullJobName, ":run"]);
|
|
16886
16940
|
}
|
|
16887
16941
|
exports.getCloudRunJobExecuteUrl = getCloudRunJobExecuteUrl;
|
|
16888
16942
|
//# sourceMappingURL=cloudRunExecutionUrl.js.map
|
|
@@ -19264,15 +19318,18 @@ const getPackageManagerInfoForComponent = async (config, componentName) => {
|
|
|
19264
19318
|
const patchFiles = baseInfo.type === "pnpm"
|
|
19265
19319
|
? (0, pnpmUtils_1.getPnpmPatchFiles)(componentIsInWorkspace ? workspaceRoot : component.dir)
|
|
19266
19320
|
: [];
|
|
19321
|
+
// sort the variable parts: their order depends on package.json key order
|
|
19322
|
+
// and dependency traversal, and an unstable order rewrites the generated
|
|
19323
|
+
// pipeline files on every regeneration without any real change
|
|
19267
19324
|
const pathsToCopyInDocker = [
|
|
19268
19325
|
...new Set([
|
|
19269
19326
|
packageJson,
|
|
19270
19327
|
...(workspacePackageJson ? [workspacePackageJson] : []),
|
|
19271
19328
|
lockFile,
|
|
19272
19329
|
...configFilePaths,
|
|
19273
|
-
...allWorkspaceManifests,
|
|
19274
|
-
...patchFiles,
|
|
19275
|
-
...currentWorkspaceDependencies,
|
|
19330
|
+
...[...allWorkspaceManifests].sort(),
|
|
19331
|
+
...[...patchFiles].sort(),
|
|
19332
|
+
...[...currentWorkspaceDependencies].sort(),
|
|
19276
19333
|
]),
|
|
19277
19334
|
];
|
|
19278
19335
|
return {
|
|
@@ -74,6 +74,10 @@ type: `build: { from: "web" }` (see workspace builds below).
|
|
|
74
74
|
runner tags, build-only env vars, and extra runner variables. A
|
|
75
75
|
`jobImage` is a concrete image url or `{ image: "<name>" }`
|
|
76
76
|
referencing a project image (see below).
|
|
77
|
+
- `reuseMainBranchImage` — in release pipelines, stage/prod copy the
|
|
78
|
+
image the main branch (`dev`) built for the released commit instead of
|
|
79
|
+
rebuilding it (falls back to a build). Only for images that don't
|
|
80
|
+
depend on the env, e.g. Rails via Cloud Native Buildpacks.
|
|
77
81
|
- `docker` — the image build strategy: a built-in
|
|
78
82
|
(`{ type: "nginx" | "node" | "meteor" }`) or
|
|
79
83
|
`{ type: "custom" }` (expects a `Dockerfile`).
|
|
@@ -20,6 +20,7 @@ generated pipeline files.
|
|
|
20
20
|
| `runnerVariables` | `Record<string,string>` | extra runner vars (also for `services:`) |
|
|
21
21
|
| `jobTags` | `string[]` | runner tags |
|
|
22
22
|
| `jobImage` | `JobImageConfig` | CI image for the build: a concrete image or `{ image: "<name>" }` referencing a project image |
|
|
23
|
+
| `reuseMainBranchImage` | `boolean \| { releaseFiles?: string[] }` | release envs (stage/prod) copy the main branch (`dev`) image of the released commit instead of rebuilding; falls back to a build. Only for env-independent images; not for `google-cloudrun`. `true` = `{ releaseFiles: ["CHANGELOG.md"] }` |
|
|
23
24
|
| `docker` | see below | the deployable image strategy |
|
|
24
25
|
|
|
25
26
|
`TestJobCustom` (for `lint`/`test`/`audit`): `command`, `jobImage`,
|
|
@@ -13,6 +13,12 @@ export declare const getDockerImageVariables: (context: ComponentContext) => {
|
|
|
13
13
|
DOCKER_IMAGE_NAME: string;
|
|
14
14
|
DOCKER_IMAGE: string;
|
|
15
15
|
};
|
|
16
|
+
/**
|
|
17
|
+
* script that copies the main branch image instead of building it, see
|
|
18
|
+
* `build.reuseMainBranchImage`. Exits the job when it
|
|
19
|
+
* reused an image, so the build script after it only runs as fallback.
|
|
20
|
+
*/
|
|
21
|
+
export declare const getReuseMainBranchImageScript: (context: ComponentContextWithBuild) => string[];
|
|
16
22
|
/**
|
|
17
23
|
* Weather the context requires a docker build
|
|
18
24
|
*/
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.hasDockerfile = exports.getDockerBuildDefaultScript = exports.getDockerBuildScriptWithBuiltInDockerFile = exports.gitlabDockerLogin = exports.DockerBuildJob = exports.getDockerJobBaseProps = exports.DOCKER_BUILD_JOB_NAME = exports.getDockerBuildVariables = exports.requiresDockerBuild = exports.getDockerImageVariables = void 0;
|
|
6
|
+
exports.hasDockerfile = exports.getDockerBuildDefaultScript = exports.getDockerBuildScriptWithBuiltInDockerFile = exports.gitlabDockerLogin = exports.DockerBuildJob = exports.getDockerJobBaseProps = exports.DOCKER_BUILD_JOB_NAME = exports.getDockerBuildVariables = exports.requiresDockerBuild = exports.getReuseMainBranchImageScript = exports.getDockerImageVariables = void 0;
|
|
7
7
|
const fs_1 = require("fs");
|
|
8
8
|
const lodash_es_1 = require("lodash-es");
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
@@ -11,6 +11,7 @@ const deploy_1 = require("../deploy");
|
|
|
11
11
|
const artifactsRegistry_1 = require("../deploy/cloudRun/artifactsRegistry");
|
|
12
12
|
const gcloudServiceAccountLoginCommands_1 = require("../deploy/cloudRun/utils/gcloudServiceAccountLoginCommands");
|
|
13
13
|
const ciVariables_1 = require("../bash/ciVariables");
|
|
14
|
+
const configruedEnvs_1 = require("../config/configruedEnvs");
|
|
14
15
|
const runner_1 = require("../runner");
|
|
15
16
|
const jobs_1 = require("../types/jobs");
|
|
16
17
|
const gitlab_1 = require("../utils/gitlab");
|
|
@@ -42,6 +43,52 @@ const getDockerImageVariables = (context) => {
|
|
|
42
43
|
};
|
|
43
44
|
};
|
|
44
45
|
exports.getDockerImageVariables = getDockerImageVariables;
|
|
46
|
+
const shellQuote = (value) => `'${value.replace(/'/g, `'\\''`)}'`;
|
|
47
|
+
/**
|
|
48
|
+
* script that copies the main branch image instead of building it, see
|
|
49
|
+
* `build.reuseMainBranchImage`. Exits the job when it
|
|
50
|
+
* reused an image, so the build script after it only runs as fallback.
|
|
51
|
+
*/
|
|
52
|
+
const getReuseMainBranchImageScript = (context) => {
|
|
53
|
+
var _a, _b;
|
|
54
|
+
const buildConfig = context.build.config;
|
|
55
|
+
// only standalone builds have the option, workspace builds don't
|
|
56
|
+
const option = "reuseMainBranchImage" in buildConfig
|
|
57
|
+
? buildConfig.reuseMainBranchImage
|
|
58
|
+
: undefined;
|
|
59
|
+
const { fullConfig, name, env } = context;
|
|
60
|
+
if (!option ||
|
|
61
|
+
!(0, configruedEnvs_1.getAllEnvsByTrigger)(fullConfig, name, "taggedRelease").includes(env)) {
|
|
62
|
+
return [];
|
|
63
|
+
}
|
|
64
|
+
if ((0, deploy_1.isOfDeployType)((_a = context.deploy) === null || _a === void 0 ? void 0 : _a.config, "google-cloudrun")) {
|
|
65
|
+
throw new Error(`${name}: build.reuseMainBranchImage is not supported for google-cloudrun deploys`);
|
|
66
|
+
}
|
|
67
|
+
const [mainBranchEnv] = (0, configruedEnvs_1.getAllEnvsByTrigger)(fullConfig, name, "mainBranch");
|
|
68
|
+
if (!mainBranchEnv) {
|
|
69
|
+
throw new Error(`${name}: build.reuseMainBranchImage needs an env that builds on the main branch (e.g. dev)`);
|
|
70
|
+
}
|
|
71
|
+
const releaseFiles = (_b = (option === true ? undefined : option.releaseFiles)) !== null && _b !== void 0 ? _b : [
|
|
72
|
+
"CHANGELOG.md",
|
|
73
|
+
];
|
|
74
|
+
const sha = (0, ciVariables_1.getCiVariable)(context, "commitSha");
|
|
75
|
+
return [
|
|
76
|
+
...(0, exports.gitlabDockerLogin)(context),
|
|
77
|
+
`REUSE_IMAGE="${(0, ciVariables_1.getCiVariable)(context, "registryImage")}/${mainBranchEnv}/${name}"`,
|
|
78
|
+
`reuse_sha=""
|
|
79
|
+
if docker buildx imagetools inspect "$REUSE_IMAGE:${sha}" >/dev/null 2>&1; then
|
|
80
|
+
reuse_sha="${sha}"
|
|
81
|
+
elif git fetch --quiet --depth=2 origin "${sha}" && [ -z "$(git diff --name-only "${sha}^" "${sha}" | grep -vxF ${releaseFiles.map((f) => `-e ${shellQuote(f)}`).join(" ")})" ]; then
|
|
82
|
+
reuse_sha="$(git rev-parse "${sha}^")"
|
|
83
|
+
fi
|
|
84
|
+
if [ -n "$reuse_sha" ] && docker buildx imagetools create --prefer-index=false --tag "$DOCKER_IMAGE:$DOCKER_IMAGE_TAG" "$REUSE_IMAGE:$reuse_sha"; then
|
|
85
|
+
echo "♻️ reused $REUSE_IMAGE:$reuse_sha, skipping the build"
|
|
86
|
+
exit 0
|
|
87
|
+
fi
|
|
88
|
+
echo "no main branch image to reuse, building the image"`,
|
|
89
|
+
];
|
|
90
|
+
};
|
|
91
|
+
exports.getReuseMainBranchImageScript = getReuseMainBranchImageScript;
|
|
45
92
|
/**
|
|
46
93
|
* Weather the context requires a docker build
|
|
47
94
|
*/
|
|
@@ -113,7 +160,7 @@ class DockerBuildJob extends jobs_1.CatladderJob {
|
|
|
113
160
|
provides: ["dockerImage"],
|
|
114
161
|
caches: cache,
|
|
115
162
|
...(0, exports.getDockerJobBaseProps)(),
|
|
116
|
-
script: script || [],
|
|
163
|
+
script: [...(0, exports.getReuseMainBranchImageScript)(context), ...(script || [])],
|
|
117
164
|
variables: {
|
|
118
165
|
...(0, removeUndefined_1.removeUndefined)((0, exports.getDockerBuildVariables)(context)),
|
|
119
166
|
...(0, removeUndefined_1.removeUndefined)(variables !== null && variables !== void 0 ? variables : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/build/docker.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/build/docker.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAgC;AAChC,yCAAsC;AACtC,gDAAwB;AAExB,sCAA2C;AAC3C,4EAI8C;AAC9C,kHAA+G;AAC/G,qDAAoD;AACpD,6DAA+D;AAC/D,sCAA2C;AAM3C,wCAA6C;AAC7C,4CAAsD;AACtD,8DAA2D;AAE3D,MAAM,4BAA4B,GAAG;IACnC,sBAAsB,EAAE,MAAM;IAC9B,yBAAyB,EAAE,KAAK;IAChC,uBAAuB,EAAE,KAAK;CAC/B,CAAC;AAEK,MAAM,uBAAuB,GAAG,CAAC,OAAyB,EAAE,EAAE;;IACnE,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,MAAM,0CAAE,MAAM,CAAC;IAC5C,OAAO;QACL,GAAG,CAAC,IAAA,uBAAc,EAAC,YAAY,EAAE,iBAAiB,CAAC;YACjD,CAAC,CAAC;gBACE,eAAe,EAAE,IAAA,4CAAwB,EAAC,OAAO,CAAC;gBAClD,YAAY,EAAE,IAAA,iDAA6B,EAAC,OAAO,CAAC;gBACpD,kBAAkB,EAAE,IAAA,uDAAmC,EAAC,OAAO,CAAC;aACjE;YACH,CAAC,CAAC,4DAA4D;gBAC5D;oBACE,eAAe,EAAE,IAAA,2BAAa,EAAC,OAAO,EAAE,UAAU,CAAC;oBAEnD,kBAAkB,EAAE,GAAG,IAAA,2BAAa,EAAC,OAAO,EAAE,eAAe,CAAC,WAAW,OAAO,CAAC,IAAI,EAAE;oBACvF,0BAA0B;oBAC1B,iBAAiB,EAAE,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI;oBACnD,YAAY,EAAE,GAAG,IAAA,2BAAa,EAAC,OAAO,EAAE,eAAe,CAAC,qBAAqB;iBAC9E,CAAC;QAEN,gBAAgB,EAAE,IAAA,2BAAa,EAAC,OAAO,EAAE,WAAW,CAAC;KACtD,CAAC;AACJ,CAAC,CAAC;AArBW,QAAA,uBAAuB,2BAqBlC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAE1E;;;;GAIG;AACI,MAAM,6BAA6B,GAAG,CAC3C,OAAkC,EACxB,EAAE;;IACZ,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;IACzC,iEAAiE;IACjE,MAAM,MAAM,GACV,sBAAsB,IAAI,WAAW;QACnC,CAAC,CAAC,WAAW,CAAC,oBAAoB;QAClC,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAC1C,IACE,CAAC,MAAM;QACP,CAAC,IAAA,oCAAmB,EAAC,UAAU,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EACrE,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,IAAA,uBAAc,EAAC,MAAA,OAAO,CAAC,MAAM,0CAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,2EAA2E,CACnF,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,aAAa,CAAC,GAAG,IAAA,oCAAmB,EAAC,UAAU,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IAC5E,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,qFAAqF,CAC7F,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAG,MAAA,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,mCAAI;QAC1E,cAAc;KACf,CAAC;IACF,MAAM,GAAG,GAAG,IAAA,2BAAa,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAChD,OAAO;QACL,GAAG,IAAA,yBAAiB,EAAC,OAAO,CAAC;QAC7B,gBAAgB,IAAA,2BAAa,EAAC,OAAO,EAAE,eAAe,CAAC,IAAI,aAAa,IAAI,IAAI,GAAG;QACnF;oDACgD,GAAG;eACxC,GAAG;2CACyB,GAAG,sCAAsC,GAAG,OAAO,GAAG,iBAAiB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gCAC1I,GAAG;;;;;;yDAMsB;KACtD,CAAC;AACJ,CAAC,CAAC;AA9CW,QAAA,6BAA6B,iCA8CxC;AAEF;;GAEG;AACI,MAAM,mBAAmB,GAAG,CAAC,OAAyB,EAAW,EAAE;;IACxE,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,MAAM,0CAAE,MAAM,CAAC;IAE5C,OAAO,CACL,IAAA,uBAAc,EACZ,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,WAAW,CACZ;QACD,CAAC,IAAA,uBAAc,EAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,YAAY,CAAC,cAAc,CAAC,CACxE,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,mBAAmB,uBAY9B;AAEF,oCAAoC;AACpC,MAAM,6BAA6B,GAAG,GAAG,EAAE,CAAC,CAAC;IAC3C,WAAW,EAAE,mBAAmB;IAChC,kBAAkB,EAAE,EAAE;IACtB,aAAa,EAAE,UAAU;IACzB,eAAe,EAAE,GAAG,EAAE,yEAAyE;CAChG,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,KAAkB,EAAE,EAAE;;IAChD,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAE7B,OAAO;QACL,oBAAoB,EAClB,gBAAgB,IAAI,KAAK,CAAC,MAAM;YAC9B,CAAC,CAAC,MAAA,KAAK,CAAC,MAAM,CAAC,cAAc,0CAAE,IAAI,CAAC,IAAI,CAAC;YACzC,CAAC,CAAC,SAAS;QACf,wBAAwB,EACtB,cAAc,IAAI,KAAK,CAAC,MAAM;YAC5B,CAAC,CAAC,MAAA,KAAK,CAAC,MAAM,CAAC,YAAY,0CAAE,IAAI,CAAC,IAAI,CAAC;YACvC,CAAC,CAAC,SAAS;KAChB,CAAC;AACJ,CAAC,CAAC;AACK,MAAM,uBAAuB,GAAG,CAAC,OAAkC,EAAE,EAAE;;IAC5E,OAAO;QACL,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3C,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG;QAC1B,oBAAoB,EAClB,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM;YAChC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM;YAC3B,sBAAsB,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM;YACrD,CAAA,MAAA,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,0CAAE,oBAAoB,MAAK,WAAW;YAC/D,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG;YACnB,CAAC,CAAC,GAAG;QAET,GAAG,IAAA,+BAAuB,EAAC,OAAO,CAAC;KACpC,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,uBAAuB,2BAclC;AAEW,QAAA,qBAAqB,GAAG,WAAW,CAAC;AAE1C,MAAM,qBAAqB,GAAG,GAGnC,EAAE;IACF,OAAO;QACL,KAAK,EAAE,IAAA,uBAAc,EAAC,cAAc,CAAC;QACrC,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,oBAAoB,EAAE,oFAAoF;gBAChH,OAAO,EAAE,CAAC,aAAa,EAAE,yCAAyC,CAAC;aACpE;SACF;QACD,SAAS,EAAE,EAAE;QACb,eAAe,EAAE,6BAA6B,EAAE;KACjD,CAAC;AACJ,CAAC,CAAC;AAfW,QAAA,qBAAqB,yBAehC;AAEF,MAAa,cAAe,SAAQ,mBAAY;IAC9C,YACE,OAAkC,EAClC,EACE,MAAM,EACN,KAAK,EACL,SAAS,EACT,eAAe,EACf,GAAG,GAAG,EACmB;QAE3B,KAAK,CAAC;YACJ,IAAI,EAAE,6BAAqB;YAC3B,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,CAAC,aAAa,CAAC;YACzB,MAAM,EAAE,KAAK;YACb,GAAG,IAAA,6BAAqB,GAAE;YAC1B,MAAM,EAAE,CAAC,GAAG,IAAA,qCAA6B,EAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YACtE,SAAS,EAAE;gBACT,GAAG,IAAA,iCAAe,EAAC,IAAA,+BAAuB,EAAC,OAAO,CAAC,CAAC;gBACpD,GAAG,IAAA,iCAAe,EAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC;aACpC;YACD,eAAe,EAAE;gBACf,GAAG,6BAA6B,EAAE;gBAClC,GAAG,4BAA4B;gBAC/B,GAAG,IAAA,iCAAe,EAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,EAAE,CAAC;aAC1C;YACD,gEAAgE;YAChE,iEAAiE;YACjE,mEAAmE;YACnE,4CAA4C;YAC5C,GAAG,IAAA,qBAAS,EAAC,IAAA,iCAAe,EAAC,GAAG,CAAC,CAAC;SACnC,CAAC,CAAC;IACL,CAAC;CACF;AAnCD,wCAmCC;AAEM,MAAM,iBAAiB,GAAG,CAAC,OAAyB,EAAE,EAAE,CAC7D,OAAO,CAAC,MAAM,IAAI,IAAA,uBAAc,EAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACxE,CAAC,CAAC;QACE,GAAG,IAAA,qEAAiC,EAAC,OAAO,CAAC;QAC7C,gCAAgC,IAAA,4CAAwB,EAAC,OAAO,CAAC,EAAE;KACpE;IACH,CAAC,CAAC;QACE,sDAAsD,IAAA,2BAAa,EAAC,OAAO,EAAE,UAAU,CAAC,IAAI,IAAA,2BAAa,EAAC,OAAO,EAAE,UAAU,CAAC,EAAE;KACjI,CAAC;AARK,QAAA,iBAAiB,qBAQtB;AAER,MAAM,kCAAkC,GAAG;IACzC,MAAM,EAAE,wBAAwB;IAChC,IAAI,EAAE,sBAAsB;IAC5B,KAAK,EAAE,uBAAuB;IAC9B,MAAM,EAAE,IAAI;CAGb,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAChC,OAAkC,EAClC,YAAwC,EACxC,EAAE;;IACF,IACE,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM;QAChC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM;QAC3B,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EACrC,CAAC;QACD,IAAI,CAAA,MAAA,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,0CAAE,IAAI,MAAK,QAAQ,EAAE,CAAC;YACnD,IAAI,MAAA,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,0CAAE,iBAAiB,EAAE,CAAC;gBACnD,gFAAgF;gBAChF,OAAO;;;EAGb,MAAA,MAAA,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,0CAAE,iBAAiB,0CAAE,IAAI,CAAC,IAAI,CAAC;IACxD,CAAC;YACC,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,MAAA,MAAA,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,0CAAE,IAAI,mCAAI,YAAY,CAAC;QAC/D,OAAO,IAAI,CAAC,CAAC,CAAC,kCAAkC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,CAAC;IACD,OAAO,YAAY,CAAC,CAAC,CAAC,kCAAkC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChF,CAAC,CAAC;AAEK,MAAM,yCAAyC,GAAG,CACvD,OAAkC,EAClC,YAAwC,EACxC,EAAE;IACF,OAAO,IAAA,mCAA2B,EAChC,OAAO,EACP,yBAAyB,CAAC,OAAO,EAAE,YAAY,CAAC,CACjD,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,yCAAyC,6CAQpD;AACK,MAAM,2BAA2B,GAAG,CACzC,OAAyB,EACzB,sBAAsC,EACtC,EAAE,CACF;IACE,sBAAsB,aAAtB,sBAAsB,cAAtB,sBAAsB,GAAI,SAAS;IACnC,GAAG,IAAA,4BAAmB,EACpB,cAAc,EACd,cAAc,CACf,CAAC,IAAA,yBAAiB,EAAC,OAAO,CAAC,CAAC;IAC7B,GAAG,IAAA,4BAAmB,EACpB,cAAc,EACd,cAAc,CACf,CAAC;QACA,qLAAqL,EAAE,4FAA4F;KACpR,CAAC;IACF,GAAG,IAAA,4BAAmB,EACpB,aAAa,EACb,qBAAqB,CACtB,CAAC;QACA,6CAA6C;QAC7C,gEAAgE;QAChE,iCAAiC;KAClC,CAAC;CACH,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAxBP,QAAA,2BAA2B,+BAwBpB;AAEb,MAAM,aAAa,GAAG,CAAC,OAAyB,EAAE,EAAE,CACzD,IAAA,eAAU,EAAC,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;AAD5C,QAAA,aAAa,iBAC+B"}
|
|
@@ -178,6 +178,35 @@ export type BuildConfigBase = {
|
|
|
178
178
|
* custom image to use
|
|
179
179
|
*/
|
|
180
180
|
jobImage?: JobImageConfig;
|
|
181
|
+
/**
|
|
182
|
+
* reuse the docker image that the main branch pipeline already built,
|
|
183
|
+
* instead of building it again in tagged-release pipelines (stage / prod).
|
|
184
|
+
*
|
|
185
|
+
* The 🔨 docker job of a release env copies the image of the main branch
|
|
186
|
+
* env (e.g. `dev/<component>:<sha>`) to its own image name — a registry-side
|
|
187
|
+
* copy that keeps the digest, no rebuild. It reuses the image of
|
|
188
|
+
*
|
|
189
|
+
* - the tagged commit itself, or
|
|
190
|
+
* - its parent, when the tagged commit is a release commit that only
|
|
191
|
+
* touches `releaseFiles` (e.g. the `CHANGELOG.md` commit of semantic-release)
|
|
192
|
+
*
|
|
193
|
+
* and falls back to a regular build when there is no such image.
|
|
194
|
+
*
|
|
195
|
+
* Only enable this when the image does not depend on the env (no
|
|
196
|
+
* env-specific build vars or build args baked in): stage and prod then run
|
|
197
|
+
* exactly the image that was built and deployed on the main branch.
|
|
198
|
+
*
|
|
199
|
+
* `true` is short for `{ releaseFiles: ["CHANGELOG.md"] }`.
|
|
200
|
+
* Not supported for `google-cloudrun` deploys.
|
|
201
|
+
*/
|
|
202
|
+
reuseMainBranchImage?: boolean | {
|
|
203
|
+
/**
|
|
204
|
+
* files (relative to the repository root) a release commit may
|
|
205
|
+
* change without invalidating the image of its parent.
|
|
206
|
+
* Defaults to `["CHANGELOG.md"]`.
|
|
207
|
+
*/
|
|
208
|
+
releaseFiles?: string[];
|
|
209
|
+
};
|
|
181
210
|
} & WithCacheConfig;
|
|
182
211
|
export type BuildConfigNodeBase = BuildConfigBase & {
|
|
183
212
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/build/types.ts"],"names":[],"mappings":";;;AA+
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/build/types.ts"],"names":[],"mappings":";;;AA+cO,MAAM,uBAAuB,GAAG,CACrC,CAAsB,EACM,EAAE;IAC9B,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC;AALW,QAAA,uBAAuB,2BAKlC;AAEK,MAAM,aAAa,GAAG,CAC3B,CAAc,EACd,GAAG,KAAQ,EACqC,EAAE;IAClD,IAAI,CAAC,IAAA,+BAAuB,EAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB"}
|
|
@@ -85,7 +85,9 @@ const getSchedulerArgs = (scheduler, context) => {
|
|
|
85
85
|
appFullName: context.environment.fullName,
|
|
86
86
|
projectId,
|
|
87
87
|
region,
|
|
88
|
-
|
|
88
|
+
// lands in a script line (not an exported variable), so the
|
|
89
|
+
// raw expression is what the shell has to see
|
|
90
|
+
}).toString(),
|
|
89
91
|
"message-body": body
|
|
90
92
|
? '"' + (0, bash_1.bashEscape)(JSON.stringify(body)) + '"'
|
|
91
93
|
: undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedules.js","sourceRoot":"","sources":["../../../../../../../../../../packages/pipeline/src/deploy/cloudRun/createJobs/execute/schedules.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"schedules.js","sourceRoot":"","sources":["../../../../../../../../../../packages/pipeline/src/deploy/cloudRun/createJobs/execute/schedules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getCloudRunJobExecuteUrl = void 0;
|
|
4
|
+
const bash_1 = require("../../../../../bash/src/index.js");
|
|
4
5
|
const jobName_1 = require("./jobName");
|
|
5
6
|
function getCloudRunJobExecuteUrl(jobName, { region, projectId, appFullName, }) {
|
|
6
7
|
const uriBase = `https://${region}-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/${projectId}/jobs`;
|
|
7
8
|
const fullJobName = (0, jobName_1.getCloudRunJobName)(appFullName, jobName);
|
|
8
|
-
|
|
9
|
+
// joined, not interpolated: on review envs the job name is a bash
|
|
10
|
+
// expression (the review slug), and a template string would demote
|
|
11
|
+
// it to a plain string — its quotes then get escaped as literal
|
|
12
|
+
// characters when the variable is exported
|
|
13
|
+
return (0, bash_1.joinBashExpressions)([uriBase, "/", fullJobName, ":run"]);
|
|
9
14
|
}
|
|
10
15
|
exports.getCloudRunJobExecuteUrl = getCloudRunJobExecuteUrl;
|
|
11
16
|
//# sourceMappingURL=cloudRunExecutionUrl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudRunExecutionUrl.js","sourceRoot":"","sources":["../../../../../../../../../packages/pipeline/src/deploy/cloudRun/utils/cloudRunExecutionUrl.ts"],"names":[],"mappings":";;;AACA,uCAA+C;AAE/C,SAAgB,wBAAwB,CACtC,OAAe,EACf,EACE,MAAM,EACN,SAAS,EACT,WAAW,GAKZ;IAED,MAAM,OAAO,GAAG,WAAW,MAAM,6DAA6D,SAAS,OAAO,CAAC;IAC/G,MAAM,WAAW,GAAG,IAAA,4BAAkB,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAE7D,OAAO,
|
|
1
|
+
{"version":3,"file":"cloudRunExecutionUrl.js","sourceRoot":"","sources":["../../../../../../../../../packages/pipeline/src/deploy/cloudRun/utils/cloudRunExecutionUrl.ts"],"names":[],"mappings":";;;AACA,0CAAsD;AACtD,uCAA+C;AAE/C,SAAgB,wBAAwB,CACtC,OAAe,EACf,EACE,MAAM,EACN,SAAS,EACT,WAAW,GAKZ;IAED,MAAM,OAAO,GAAG,WAAW,MAAM,6DAA6D,SAAS,OAAO,CAAC;IAC/G,MAAM,WAAW,GAAG,IAAA,4BAAkB,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAE7D,kEAAkE;IAClE,mEAAmE;IACnE,gEAAgE;IAChE,2CAA2C;IAC3C,OAAO,IAAA,0BAAmB,EAAC,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AAClE,CAAC;AApBD,4DAoBC"}
|
|
@@ -59,15 +59,18 @@ const getPackageManagerInfoForComponent = async (config, componentName) => {
|
|
|
59
59
|
const patchFiles = baseInfo.type === "pnpm"
|
|
60
60
|
? (0, pnpmUtils_1.getPnpmPatchFiles)(componentIsInWorkspace ? workspaceRoot : component.dir)
|
|
61
61
|
: [];
|
|
62
|
+
// sort the variable parts: their order depends on package.json key order
|
|
63
|
+
// and dependency traversal, and an unstable order rewrites the generated
|
|
64
|
+
// pipeline files on every regeneration without any real change
|
|
62
65
|
const pathsToCopyInDocker = [
|
|
63
66
|
...new Set([
|
|
64
67
|
packageJson,
|
|
65
68
|
...(workspacePackageJson ? [workspacePackageJson] : []),
|
|
66
69
|
lockFile,
|
|
67
70
|
...configFilePaths,
|
|
68
|
-
...allWorkspaceManifests,
|
|
69
|
-
...patchFiles,
|
|
70
|
-
...currentWorkspaceDependencies,
|
|
71
|
+
...[...allWorkspaceManifests].sort(),
|
|
72
|
+
...[...patchFiles].sort(),
|
|
73
|
+
...[...currentWorkspaceDependencies].sort(),
|
|
71
74
|
]),
|
|
72
75
|
];
|
|
73
76
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageManager.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/pipeline/packageManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"packageManager.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/pipeline/packageManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,6 +74,10 @@ type: `build: { from: "web" }` (see workspace builds below).
|
|
|
74
74
|
runner tags, build-only env vars, and extra runner variables. A
|
|
75
75
|
`jobImage` is a concrete image url or `{ image: "<name>" }`
|
|
76
76
|
referencing a project image (see below).
|
|
77
|
+
- `reuseMainBranchImage` — in release pipelines, stage/prod copy the
|
|
78
|
+
image the main branch (`dev`) built for the released commit instead of
|
|
79
|
+
rebuilding it (falls back to a build). Only for images that don't
|
|
80
|
+
depend on the env, e.g. Rails via Cloud Native Buildpacks.
|
|
77
81
|
- `docker` — the image build strategy: a built-in
|
|
78
82
|
(`{ type: "nginx" | "node" | "meteor" }`) or
|
|
79
83
|
`{ type: "custom" }` (expects a `Dockerfile`).
|
|
@@ -20,6 +20,7 @@ generated pipeline files.
|
|
|
20
20
|
| `runnerVariables` | `Record<string,string>` | extra runner vars (also for `services:`) |
|
|
21
21
|
| `jobTags` | `string[]` | runner tags |
|
|
22
22
|
| `jobImage` | `JobImageConfig` | CI image for the build: a concrete image or `{ image: "<name>" }` referencing a project image |
|
|
23
|
+
| `reuseMainBranchImage` | `boolean \| { releaseFiles?: string[] }` | release envs (stage/prod) copy the main branch (`dev`) image of the released commit instead of rebuilding; falls back to a build. Only for env-independent images; not for `google-cloudrun`. `true` = `{ releaseFiles: ["CHANGELOG.md"] }` |
|
|
23
24
|
| `docker` | see below | the deployable image strategy |
|
|
24
25
|
|
|
25
26
|
`TestJobCustom` (for `lint`/`test`/`audit`): `command`, `jobImage`,
|