@catladder/cli 5.1.1 → 5.1.3
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/checkGithubReleaseWorkflow.d.ts +30 -0
- package/dist/apps/cli/src/apps/cli/commands/project/doctor/checkGithubReleaseWorkflow.js +89 -0
- package/dist/apps/cli/src/apps/cli/commands/project/doctor/checkGithubReleaseWorkflow.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/githubMergeGating.d.ts +4 -1
- package/dist/apps/cli/src/apps/cli/commands/project/githubMergeGating.js +4 -1
- package/dist/apps/cli/src/apps/cli/commands/project/githubMergeGating.js.map +1 -1
- package/dist/apps/cli/src/catci.js +13 -0
- package/dist/apps/cli/src/catci.js.map +1 -1
- package/dist/apps/cli/src/release/changesetsReleaseJob.js +20 -42
- package/dist/apps/cli/src/release/changesetsReleaseJob.js.map +1 -1
- package/dist/apps/cli/src/release/githubDeployKey.d.ts +36 -0
- package/dist/apps/cli/src/release/githubDeployKey.js +126 -0
- package/dist/apps/cli/src/release/githubDeployKey.js.map +1 -0
- package/dist/bundles/catci/index.js +5 -5
- package/dist/bundles/catenv/index.js +31 -7
- package/dist/bundles/cli/index.js +133 -8
- package/dist/bundles/runner-images/semantic-release/Dockerfile +3 -1
- package/dist/bundles/runner-images/semantic-release/scripts/semanticRelease +37 -4
- package/dist/bundles/skills/catladder-migrate-ci-backend/SKILL.md +15 -6
- package/dist/bundles/skills/catladder-pipelines/SKILL.md +3 -2
- package/dist/bundles/skills/catladder-releases/SKILL.md +14 -0
- package/dist/packages/pipeline/src/backends/github/GithubBackend.js +12 -3
- package/dist/packages/pipeline/src/backends/github/GithubBackend.js.map +1 -1
- package/dist/packages/pipeline/src/catci/shippedCatci.d.ts +8 -0
- package/dist/packages/pipeline/src/catci/shippedCatci.js +19 -4
- package/dist/packages/pipeline/src/catci/shippedCatci.js.map +1 -1
- package/dist/runner-images/semantic-release/Dockerfile +3 -1
- package/dist/runner-images/semantic-release/scripts/semanticRelease +37 -4
- package/dist/skills/catladder-migrate-ci-backend/SKILL.md +15 -6
- package/dist/skills/catladder-pipelines/SKILL.md +3 -2
- package/dist/skills/catladder-releases/SKILL.md +14 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/apps/cli/commands/project/__tests__/checkGithubReleaseWorkflow.test.ts +89 -0
- package/src/apps/cli/commands/project/doctor/checkGithubReleaseWorkflow.ts +125 -0
- package/src/apps/cli/commands/project/doctor/index.ts +2 -0
- package/src/apps/cli/commands/project/githubMergeGating.ts +4 -1
- package/src/catci.ts +15 -0
- package/src/release/__tests__/githubDeployKey.test.ts +148 -0
- package/src/release/changesetsReleaseJob.ts +28 -57
- package/src/release/githubDeployKey.ts +141 -0
|
@@ -2678,10 +2678,19 @@ const TRIGGER_WORKFLOWS = {
|
|
|
2678
2678
|
},
|
|
2679
2679
|
taggedRelease: {
|
|
2680
2680
|
name: "🛠️ catladder release",
|
|
2681
|
-
// tags pushed with the default GITHUB_TOKEN
|
|
2682
|
-
//
|
|
2683
|
-
//
|
|
2681
|
+
// tags pushed with the default GITHUB_TOKEN don't trigger `on:
|
|
2682
|
+
// push: tags`, and the release job's deploy-key push carries
|
|
2683
|
+
// [skip ci] — the release job therefore dispatches this workflow
|
|
2684
|
+
// explicitly for the new tag (the only run for it)
|
|
2684
2685
|
on: { push: { tags: ["v*"] }, workflow_dispatch: {} },
|
|
2686
|
+
// one run per tag at a time, never cancelled: should a second run
|
|
2687
|
+
// for the same tag ever start (a redispatch, or a project whose
|
|
2688
|
+
// own .releaserc drops the [skip ci] marker), it waits instead of
|
|
2689
|
+
// deploying on top of the first
|
|
2690
|
+
concurrency: {
|
|
2691
|
+
group: "catladder-release-${{ github.ref_name }}",
|
|
2692
|
+
"cancel-in-progress": false,
|
|
2693
|
+
},
|
|
2685
2694
|
},
|
|
2686
2695
|
};
|
|
2687
2696
|
class GithubBackend {
|
|
@@ -7169,7 +7178,7 @@ exports.isOfBuildType = isOfBuildType;
|
|
|
7169
7178
|
"use strict";
|
|
7170
7179
|
|
|
7171
7180
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
7172
|
-
exports.getCatciGeneratedFiles = exports.GENERATED_CATCI_FOLDER = void 0;
|
|
7181
|
+
exports.getCatciGeneratedFiles = exports.makeCatciGeneratedFiles = exports.GENERATED_CATCI_FOLDER = void 0;
|
|
7173
7182
|
const fs_1 = __nccwpck_require__(79896);
|
|
7174
7183
|
const path_1 = __nccwpck_require__(16928);
|
|
7175
7184
|
exports.GENERATED_CATCI_FOLDER = ".catladder-generated/catci";
|
|
@@ -7197,14 +7206,29 @@ const getShippedCatciBundle = () => {
|
|
|
7197
7206
|
return found;
|
|
7198
7207
|
};
|
|
7199
7208
|
/**
|
|
7200
|
-
* the
|
|
7209
|
+
* the files that make up the materialized catci folder for a given
|
|
7210
|
+
* bundle content
|
|
7201
7211
|
*/
|
|
7202
|
-
const
|
|
7212
|
+
const makeCatciGeneratedFiles = (bundle) => [
|
|
7203
7213
|
{
|
|
7204
7214
|
path: (0, path_1.join)(exports.GENERATED_CATCI_FOLDER, "index.js"),
|
|
7205
|
-
content:
|
|
7215
|
+
content: bundle,
|
|
7216
|
+
},
|
|
7217
|
+
{
|
|
7218
|
+
// the bundle is commonjs (ncc output using `__dirname`), but node
|
|
7219
|
+
// resolves the module format from the nearest package.json: a
|
|
7220
|
+
// consumer whose root package.json declares `"type": "module"`
|
|
7221
|
+
// would parse the bundle as ESM and crash on the first `__dirname`.
|
|
7222
|
+
// a sibling package.json pins the folder to commonjs regardless.
|
|
7223
|
+
path: (0, path_1.join)(exports.GENERATED_CATCI_FOLDER, "package.json"),
|
|
7224
|
+
content: `${JSON.stringify({ type: "commonjs" }, null, 2)}\n`,
|
|
7206
7225
|
},
|
|
7207
7226
|
];
|
|
7227
|
+
exports.makeCatciGeneratedFiles = makeCatciGeneratedFiles;
|
|
7228
|
+
/**
|
|
7229
|
+
* the catci files to materialize into the generated folder
|
|
7230
|
+
*/
|
|
7231
|
+
const getCatciGeneratedFiles = () => (0, exports.makeCatciGeneratedFiles)((0, fs_1.readFileSync)(getShippedCatciBundle(), "utf-8"));
|
|
7208
7232
|
exports.getCatciGeneratedFiles = getCatciGeneratedFiles;
|
|
7209
7233
|
//# sourceMappingURL=shippedCatci.js.map
|
|
7210
7234
|
|
|
@@ -869,6 +869,102 @@ exports.checkGithubImageCasing = checkGithubImageCasing;
|
|
|
869
869
|
|
|
870
870
|
/***/ }),
|
|
871
871
|
|
|
872
|
+
/***/ 64286:
|
|
873
|
+
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
|
874
|
+
|
|
875
|
+
"use strict";
|
|
876
|
+
|
|
877
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
878
|
+
exports.checkGithubReleaseWorkflow = exports.findReleaseJobImageDrift = void 0;
|
|
879
|
+
const promises_1 = __nccwpck_require__(91943);
|
|
880
|
+
const path_1 = __nccwpck_require__(16928);
|
|
881
|
+
const pipeline_1 = __nccwpck_require__(53695);
|
|
882
|
+
const yaml_1 = __nccwpck_require__(99292);
|
|
883
|
+
const WORKFLOWS_FOLDER = ".github/workflows";
|
|
884
|
+
/** the job name of the release job, see githubReleaseJobs.ts */
|
|
885
|
+
const RELEASE_JOB_NAME = "create release";
|
|
886
|
+
const releaseJobImage = (workflow) => {
|
|
887
|
+
var _a;
|
|
888
|
+
const job = Object.values((_a = workflow.jobs) !== null && _a !== void 0 ? _a : {}).find((job) => (job === null || job === void 0 ? void 0 : job.name) === RELEASE_JOB_NAME);
|
|
889
|
+
const container = job === null || job === void 0 ? void 0 : job.container;
|
|
890
|
+
if (typeof container === "string")
|
|
891
|
+
return container;
|
|
892
|
+
if (container && typeof container === "object" && "image" in container) {
|
|
893
|
+
return `${container.image}`;
|
|
894
|
+
}
|
|
895
|
+
return null;
|
|
896
|
+
};
|
|
897
|
+
/**
|
|
898
|
+
* compares the release job image of every generated workflow carrying
|
|
899
|
+
* one against the committed workflow of the same name. The job images
|
|
900
|
+
* are tagged by a content hash of their definition, so a differing tag
|
|
901
|
+
* means the committed workflow runs an older release image.
|
|
902
|
+
*/
|
|
903
|
+
const findReleaseJobImageDrift = (generated, committed) => Object.entries(generated).flatMap(([file, workflow]) => {
|
|
904
|
+
var _a;
|
|
905
|
+
const expected = releaseJobImage(workflow);
|
|
906
|
+
if (!expected)
|
|
907
|
+
return [];
|
|
908
|
+
const content = committed[file];
|
|
909
|
+
let committedImage = null;
|
|
910
|
+
if (content) {
|
|
911
|
+
try {
|
|
912
|
+
committedImage = releaseJobImage((_a = (0, yaml_1.parse)(content)) !== null && _a !== void 0 ? _a : {});
|
|
913
|
+
}
|
|
914
|
+
catch (_b) {
|
|
915
|
+
committedImage = null;
|
|
916
|
+
}
|
|
917
|
+
}
|
|
918
|
+
return committedImage === expected
|
|
919
|
+
? []
|
|
920
|
+
: [{ file, expected, committed: committedImage }];
|
|
921
|
+
});
|
|
922
|
+
exports.findReleaseJobImageDrift = findReleaseJobImageDrift;
|
|
923
|
+
/**
|
|
924
|
+
* the release job image in the committed workflows must be the one this
|
|
925
|
+
* catladder version generates. The image tag encodes the image
|
|
926
|
+
* definition, so an older tag means an older release script — which is
|
|
927
|
+
* more than cosmetics: the semantic-release image before this check
|
|
928
|
+
* pushed with the workflow token and ignored the release deploy key,
|
|
929
|
+
* so every release on a repository with merge gating failed on GH013
|
|
930
|
+
* while `project setup` and the deploy-key checks reported all green.
|
|
931
|
+
*
|
|
932
|
+
* Needs no `gh` login — only the config and the committed files.
|
|
933
|
+
*/
|
|
934
|
+
const checkGithubReleaseWorkflow = async (report, config) => {
|
|
935
|
+
if (!(0, pipeline_1.getEnabledPipelineTypes)(config).includes("github"))
|
|
936
|
+
return;
|
|
937
|
+
report.section("github release workflow");
|
|
938
|
+
let generated;
|
|
939
|
+
try {
|
|
940
|
+
const images = new pipeline_1.JobImagesPlan("github", config.images, await (0, pipeline_1.resolveGithubRegistryImage)(config));
|
|
941
|
+
generated = await new pipeline_1.GithubBackend().createWorkflows(config, images);
|
|
942
|
+
}
|
|
943
|
+
catch (e) {
|
|
944
|
+
report.warn(`could not generate the github workflows (${e.message})`);
|
|
945
|
+
return;
|
|
946
|
+
}
|
|
947
|
+
const files = Object.keys(generated).filter((file) => releaseJobImage(generated[file]));
|
|
948
|
+
const committed = {};
|
|
949
|
+
for (const file of files) {
|
|
950
|
+
committed[file] = await (0, promises_1.readFile)((0, path_1.join)(WORKFLOWS_FOLDER, file), "utf8").catch(() => null);
|
|
951
|
+
}
|
|
952
|
+
const drift = (0, exports.findReleaseJobImageDrift)(generated, committed);
|
|
953
|
+
if (drift.length === 0) {
|
|
954
|
+
report.ok(`release job image up to date in ${files.length} generated workflow(s)`);
|
|
955
|
+
return;
|
|
956
|
+
}
|
|
957
|
+
for (const { file, expected, committed } of drift) {
|
|
958
|
+
report.fail(committed
|
|
959
|
+
? `${WORKFLOWS_FOLDER}/${file}: the release job runs ${committed}, this catladder version generates ${expected} — the committed workflow was generated by an older catladder (its release script may push with the workflow token, ignoring the release deploy key)`
|
|
960
|
+
: `${WORKFLOWS_FOLDER}/${file}: missing or without a '${RELEASE_JOB_NAME}' job (expected image ${expected})`, "run: catenv (and commit the regenerated workflows)");
|
|
961
|
+
}
|
|
962
|
+
};
|
|
963
|
+
exports.checkGithubReleaseWorkflow = checkGithubReleaseWorkflow;
|
|
964
|
+
//# sourceMappingURL=checkGithubReleaseWorkflow.js.map
|
|
965
|
+
|
|
966
|
+
/***/ }),
|
|
967
|
+
|
|
872
968
|
/***/ 26904:
|
|
873
969
|
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
|
874
970
|
|
|
@@ -1014,6 +1110,7 @@ const getProjectConfig_1 = __nccwpck_require__(70478);
|
|
|
1014
1110
|
const checkCloudRun_1 = __nccwpck_require__(55869);
|
|
1015
1111
|
const checkGithub_1 = __nccwpck_require__(88480);
|
|
1016
1112
|
const checkGithubImageCasing_1 = __nccwpck_require__(12668);
|
|
1113
|
+
const checkGithubReleaseWorkflow_1 = __nccwpck_require__(64286);
|
|
1017
1114
|
const checkGitlab_1 = __nccwpck_require__(26904);
|
|
1018
1115
|
const checkStore_1 = __nccwpck_require__(62878);
|
|
1019
1116
|
const DoctorReport_1 = __nccwpck_require__(87354);
|
|
@@ -1050,6 +1147,7 @@ const doctorProject = async (instance, onlyComponents) => {
|
|
|
1050
1147
|
}
|
|
1051
1148
|
await (0, checkCloudRun_1.checkCloudRun)(report, contexts);
|
|
1052
1149
|
await (0, checkGithubImageCasing_1.checkGithubImageCasing)(report, config);
|
|
1150
|
+
await (0, checkGithubReleaseWorkflow_1.checkGithubReleaseWorkflow)(report, config);
|
|
1053
1151
|
await (0, checkGithub_1.checkGithub)(report, config);
|
|
1054
1152
|
report.summarize();
|
|
1055
1153
|
};
|
|
@@ -1094,7 +1192,10 @@ exports.MERGE_GATING_RULESET_NAME = "catladder merge gating";
|
|
|
1094
1192
|
exports.RELEASE_DEPLOY_KEY_TITLE = "catladder release";
|
|
1095
1193
|
/**
|
|
1096
1194
|
* actions secret holding the deploy key's private half; the generated
|
|
1097
|
-
* release jobs pass it
|
|
1195
|
+
* release jobs pass it into the job env and both release methods push
|
|
1196
|
+
* over ssh with it when it is set — changesets from catci itself,
|
|
1197
|
+
* semantic-release via the ssh repository url catci prepares for it
|
|
1198
|
+
* (see src/release/githubDeployKey.ts)
|
|
1098
1199
|
*/
|
|
1099
1200
|
exports.RELEASE_DEPLOY_KEY_SECRET = "CATLADDER_RELEASE_KEY";
|
|
1100
1201
|
/** the ruleset `project setup` creates (and restores on drift) */
|
|
@@ -9129,10 +9230,19 @@ const TRIGGER_WORKFLOWS = {
|
|
|
9129
9230
|
},
|
|
9130
9231
|
taggedRelease: {
|
|
9131
9232
|
name: "🛠️ catladder release",
|
|
9132
|
-
// tags pushed with the default GITHUB_TOKEN
|
|
9133
|
-
//
|
|
9134
|
-
//
|
|
9233
|
+
// tags pushed with the default GITHUB_TOKEN don't trigger `on:
|
|
9234
|
+
// push: tags`, and the release job's deploy-key push carries
|
|
9235
|
+
// [skip ci] — the release job therefore dispatches this workflow
|
|
9236
|
+
// explicitly for the new tag (the only run for it)
|
|
9135
9237
|
on: { push: { tags: ["v*"] }, workflow_dispatch: {} },
|
|
9238
|
+
// one run per tag at a time, never cancelled: should a second run
|
|
9239
|
+
// for the same tag ever start (a redispatch, or a project whose
|
|
9240
|
+
// own .releaserc drops the [skip ci] marker), it waits instead of
|
|
9241
|
+
// deploying on top of the first
|
|
9242
|
+
concurrency: {
|
|
9243
|
+
group: "catladder-release-${{ github.ref_name }}",
|
|
9244
|
+
"cancel-in-progress": false,
|
|
9245
|
+
},
|
|
9136
9246
|
},
|
|
9137
9247
|
};
|
|
9138
9248
|
class GithubBackend {
|
|
@@ -13620,7 +13730,7 @@ exports.isOfBuildType = isOfBuildType;
|
|
|
13620
13730
|
"use strict";
|
|
13621
13731
|
|
|
13622
13732
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
13623
|
-
exports.getCatciGeneratedFiles = exports.GENERATED_CATCI_FOLDER = void 0;
|
|
13733
|
+
exports.getCatciGeneratedFiles = exports.makeCatciGeneratedFiles = exports.GENERATED_CATCI_FOLDER = void 0;
|
|
13624
13734
|
const fs_1 = __nccwpck_require__(79896);
|
|
13625
13735
|
const path_1 = __nccwpck_require__(16928);
|
|
13626
13736
|
exports.GENERATED_CATCI_FOLDER = ".catladder-generated/catci";
|
|
@@ -13648,14 +13758,29 @@ const getShippedCatciBundle = () => {
|
|
|
13648
13758
|
return found;
|
|
13649
13759
|
};
|
|
13650
13760
|
/**
|
|
13651
|
-
* the
|
|
13761
|
+
* the files that make up the materialized catci folder for a given
|
|
13762
|
+
* bundle content
|
|
13652
13763
|
*/
|
|
13653
|
-
const
|
|
13764
|
+
const makeCatciGeneratedFiles = (bundle) => [
|
|
13654
13765
|
{
|
|
13655
13766
|
path: (0, path_1.join)(exports.GENERATED_CATCI_FOLDER, "index.js"),
|
|
13656
|
-
content:
|
|
13767
|
+
content: bundle,
|
|
13768
|
+
},
|
|
13769
|
+
{
|
|
13770
|
+
// the bundle is commonjs (ncc output using `__dirname`), but node
|
|
13771
|
+
// resolves the module format from the nearest package.json: a
|
|
13772
|
+
// consumer whose root package.json declares `"type": "module"`
|
|
13773
|
+
// would parse the bundle as ESM and crash on the first `__dirname`.
|
|
13774
|
+
// a sibling package.json pins the folder to commonjs regardless.
|
|
13775
|
+
path: (0, path_1.join)(exports.GENERATED_CATCI_FOLDER, "package.json"),
|
|
13776
|
+
content: `${JSON.stringify({ type: "commonjs" }, null, 2)}\n`,
|
|
13657
13777
|
},
|
|
13658
13778
|
];
|
|
13779
|
+
exports.makeCatciGeneratedFiles = makeCatciGeneratedFiles;
|
|
13780
|
+
/**
|
|
13781
|
+
* the catci files to materialize into the generated folder
|
|
13782
|
+
*/
|
|
13783
|
+
const getCatciGeneratedFiles = () => (0, exports.makeCatciGeneratedFiles)((0, fs_1.readFileSync)(getShippedCatciBundle(), "utf-8"));
|
|
13659
13784
|
exports.getCatciGeneratedFiles = getCatciGeneratedFiles;
|
|
13660
13785
|
//# sourceMappingURL=shippedCatci.js.map
|
|
13661
13786
|
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
# (@semantic-release/git and @semantic-release/changelog need node >=24.15).
|
|
5
5
|
FROM node:24-alpine
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
# openssh: on github the release job pushes with the release deploy key
|
|
8
|
+
# over ssh (see scripts/semanticRelease)
|
|
9
|
+
RUN apk add --no-cache bash git git-lfs openssh-client
|
|
8
10
|
|
|
9
11
|
# add semantic release
|
|
10
12
|
# NOTE: pin every dependency exactly. These are the semantic-release@25 line
|
|
@@ -39,7 +39,34 @@ fi
|
|
|
39
39
|
|
|
40
40
|
echo "doing semantic release"
|
|
41
41
|
|
|
42
|
+
SEMANTIC_RELEASE_ARGS=()
|
|
43
|
+
# the commit message suffix, see the @semantic-release/git config below
|
|
44
|
+
RELEASE_COMMIT_SUFFIX=""
|
|
42
45
|
if [ "$GITHUB_ACTIONS" = "true" ]; then
|
|
46
|
+
# [skip ci] on github only: a push with the deploy key triggers
|
|
47
|
+
# workflows (unlike a push with GITHUB_TOKEN), and neither the release
|
|
48
|
+
# commit nor the tag needs a push-triggered run — the taggedRelease
|
|
49
|
+
# workflow is dispatched explicitly at the end, the marker keeps it
|
|
50
|
+
# the only run (same as the changesets path). On gitlab the tag
|
|
51
|
+
# pipeline MUST fire natively, so no marker there.
|
|
52
|
+
RELEASE_COMMIT_SUFFIX=" [skip ci]"
|
|
53
|
+
|
|
54
|
+
if [ -n "$CATLADDER_RELEASE_KEY" ]; then
|
|
55
|
+
# merge gating (a ruleset requiring the `catladder ✅` check on the
|
|
56
|
+
# default branch) rejects the release push unless it comes from the
|
|
57
|
+
# release deploy key — the workflow token can never bypass a
|
|
58
|
+
# ruleset. catci writes the key, points git's ssh at it and checks
|
|
59
|
+
# that the key reaches the repository (a clear failure here instead
|
|
60
|
+
# of a GH013 inside @semantic-release/git). The ssh url has to be
|
|
61
|
+
# passed explicitly: semantic-release takes package.json's
|
|
62
|
+
# `repository` over origin, and origin is the token-authenticated
|
|
63
|
+
# https url actions/checkout left behind.
|
|
64
|
+
RELEASE_REPOSITORY_URL=$(node "$CATCI" release github-deploy-key-remote)
|
|
65
|
+
SEMANTIC_RELEASE_ARGS+=(--repository-url "$RELEASE_REPOSITORY_URL")
|
|
66
|
+
else
|
|
67
|
+
echo "CATLADDER_RELEASE_KEY not set — pushing with the workflow token (fails on a repository with merge gating: run 'catladder project setup')"
|
|
68
|
+
fi
|
|
69
|
+
|
|
43
70
|
# the github counterpart of the gitlab plugin below: it creates the
|
|
44
71
|
# entry on the releases page with the generated notes. Everything
|
|
45
72
|
# beyond that is switched off on purpose — commenting on the
|
|
@@ -62,6 +89,10 @@ else
|
|
|
62
89
|
"@semantic-release/gitlab"'
|
|
63
90
|
fi
|
|
64
91
|
|
|
92
|
+
# NOTE: a project bringing its own .releaserc has to keep "[skip ci]" in
|
|
93
|
+
# the git plugin's commit message on github (see RELEASE_COMMIT_SUFFIX),
|
|
94
|
+
# otherwise a deploy-key push starts the main workflow for the release
|
|
95
|
+
# commit and a second taggedRelease run for the tag.
|
|
65
96
|
if [ ! -e .releaserc ]; then
|
|
66
97
|
cat >.releaserc <<EOF
|
|
67
98
|
{
|
|
@@ -98,7 +129,7 @@ if [ ! -e .releaserc ]; then
|
|
|
98
129
|
# loop-prevention rule keys on the literal "chore(release)" prefix, so keep
|
|
99
130
|
# this literal. Don't "fix" it back to \${branch.type}.
|
|
100
131
|
["@semantic-release/git", {
|
|
101
|
-
"message": "chore(release): \${nextRelease.version}\n\n\${nextRelease.notes}"
|
|
132
|
+
"message": "chore(release): \${nextRelease.version}${RELEASE_COMMIT_SUFFIX}\n\n\${nextRelease.notes}"
|
|
102
133
|
}]${PUBLISH_PLUGIN}
|
|
103
134
|
],
|
|
104
135
|
"branches": [
|
|
@@ -124,11 +155,13 @@ if [ "$GITHUB_ACTIONS" = "true" ]; then
|
|
|
124
155
|
TAGS_BEFORE=$(git tag --list 'v[0-9]*')
|
|
125
156
|
fi
|
|
126
157
|
|
|
127
|
-
semantic-release
|
|
158
|
+
semantic-release "${SEMANTIC_RELEASE_ARGS[@]}"
|
|
128
159
|
|
|
129
160
|
# tags pushed with the default GITHUB_TOKEN don't trigger `on: push:
|
|
130
|
-
# tags` workflows (github's recursion guard)
|
|
131
|
-
#
|
|
161
|
+
# tags` workflows (github's recursion guard), and a deploy-key push
|
|
162
|
+
# carries [skip ci] (see above) — dispatch the taggedRelease workflow
|
|
163
|
+
# explicitly for a tag semantic-release created, whichever way it was
|
|
164
|
+
# pushed
|
|
132
165
|
if [ "$GITHUB_ACTIONS" = "true" ] && [ -f "$CATCI" ]; then
|
|
133
166
|
if [ -z "$TAGS_BEFORE" ]; then
|
|
134
167
|
NEW_TAG=$(git tag --list 'v[0-9]*' | tail -n1)
|
|
@@ -183,10 +183,15 @@ skill for the exact command surface.
|
|
|
183
183
|
- **GitLab** needs a `GL_TOKEN` project access token (named
|
|
184
184
|
`semantic-release`) to push the release commit and tag. It is created
|
|
185
185
|
and rotated by `yarn catladder project setup`.
|
|
186
|
-
- **GitHub** needs
|
|
187
|
-
`
|
|
188
|
-
|
|
189
|
-
|
|
186
|
+
- **GitHub** needs the release deploy key that `yarn catladder project
|
|
187
|
+
setup` provisions together with the merge gating (Step 9): the release
|
|
188
|
+
job pushes the release commit and tag over ssh with it, because the
|
|
189
|
+
built-in `github.token` can never bypass the required `catladder ✅`
|
|
190
|
+
check on the default branch (the push fails with GH013 otherwise).
|
|
191
|
+
Without merge gating the job falls back to the token. The release
|
|
192
|
+
commit carries `[skip ci]` and the release job dispatches the
|
|
193
|
+
tagged-release workflow explicitly (one run per tag); that is built
|
|
194
|
+
in and needs no configuration.
|
|
190
195
|
- **Only one backend should own releases at a time.** Both backends
|
|
191
196
|
generate release jobs, and with `releases: { when: "auto" }` both would
|
|
192
197
|
try to tag the same commit. During the parallel phase, agree with the
|
|
@@ -287,9 +292,13 @@ now-wrong `gitRemote`, regenerate once more, and finish with
|
|
|
287
292
|
token bypass rulesets, so setup provisions a write deploy key
|
|
288
293
|
("catladder release", private half in the `CATLADDER_RELEASE_KEY`
|
|
289
294
|
actions secret; deploy keys never expire) that the release job
|
|
290
|
-
pushes with over ssh
|
|
295
|
+
pushes with over ssh — with both release methods, semantic-release
|
|
296
|
+
and changesets. Classic branch protection has no bypass list
|
|
291
297
|
at all, which is why setup uses a ruleset and migrates old
|
|
292
|
-
classic-protection gating away. `project doctor` verifies all of it
|
|
298
|
+
classic-protection gating away. `project doctor` verifies all of it,
|
|
299
|
+
including that the committed release workflow runs the release image
|
|
300
|
+
of the installed catladder (an older semantic-release image pushed
|
|
301
|
+
with the token and ignored the key — regenerate with `catenv`).
|
|
293
302
|
Required reviews stay a human choice.
|
|
294
303
|
- Tell the team where the pipeline lives now and how manual actions
|
|
295
304
|
work there (on GitHub, manual jobs are dispatch workflows in the
|
|
@@ -70,8 +70,9 @@ jobs). Their definitions are materialized into
|
|
|
70
70
|
`.catladder-generated/images/` and built in the project's own registry
|
|
71
71
|
under `catladder/` (content-hashed, rebuilt only on change).
|
|
72
72
|
`.catladder-generated/catci/` holds a small bundled CI companion used by
|
|
73
|
-
generated jobs (e.g. the release security audit)
|
|
74
|
-
|
|
73
|
+
generated jobs (e.g. the release security audit) plus a `package.json`
|
|
74
|
+
pinning the folder to CommonJS (needed when the project's root
|
|
75
|
+
`package.json` has `"type": "module"`) — all generated, never edit.
|
|
75
76
|
|
|
76
77
|
Projects can declare their own job images under `images` in
|
|
77
78
|
`catladder.ts` (`🐳 image <name>` build jobs, pushed to `job-images/` in
|
|
@@ -128,6 +128,20 @@ the `security` commands in the `catladder-cli` reference.
|
|
|
128
128
|
MR adding a changeset describing the accumulated work.
|
|
129
129
|
- Wrong version bump → check commit types (semantic-release) or the bump
|
|
130
130
|
levels in the changeset files (changesets).
|
|
131
|
+
- GitHub: the push is rejected with `GH013 … Required status check
|
|
132
|
+
"catladder ✅" is expected` (or GH006) → the release push has to use
|
|
133
|
+
the release deploy key, the only actor that bypasses the merge-gating
|
|
134
|
+
ruleset. `yarn catladder project setup` provisions it (deploy key
|
|
135
|
+
`catladder release` + secret `CATLADDER_RELEASE_KEY`), `yarn catladder
|
|
136
|
+
project doctor` verifies it — including that the committed release
|
|
137
|
+
workflow runs the current release image; an older semantic-release
|
|
138
|
+
image pushed with the workflow token and ignored the key (regenerate
|
|
139
|
+
with `yarn catenv` and commit).
|
|
140
|
+
- GitHub, semantic-release with a project-provided `.releaserc`: keep
|
|
141
|
+
`[skip ci]` in the `@semantic-release/git` commit message. The
|
|
142
|
+
deploy-key push triggers workflows, and without the marker the release
|
|
143
|
+
commit starts a main run and the tag a second tagged run next to the
|
|
144
|
+
one the release job dispatches.
|
|
131
145
|
- Tag pushed but nothing on the releases page → with `changesets` the
|
|
132
146
|
entry is created via the host api after the push and never fails the
|
|
133
147
|
job (the release itself is done); look for the `could not create the
|
|
@@ -42,10 +42,19 @@ const TRIGGER_WORKFLOWS = {
|
|
|
42
42
|
},
|
|
43
43
|
taggedRelease: {
|
|
44
44
|
name: "🛠️ catladder release",
|
|
45
|
-
// tags pushed with the default GITHUB_TOKEN
|
|
46
|
-
//
|
|
47
|
-
//
|
|
45
|
+
// tags pushed with the default GITHUB_TOKEN don't trigger `on:
|
|
46
|
+
// push: tags`, and the release job's deploy-key push carries
|
|
47
|
+
// [skip ci] — the release job therefore dispatches this workflow
|
|
48
|
+
// explicitly for the new tag (the only run for it)
|
|
48
49
|
on: { push: { tags: ["v*"] }, workflow_dispatch: {} },
|
|
50
|
+
// one run per tag at a time, never cancelled: should a second run
|
|
51
|
+
// for the same tag ever start (a redispatch, or a project whose
|
|
52
|
+
// own .releaserc drops the [skip ci] marker), it waits instead of
|
|
53
|
+
// deploying on top of the first
|
|
54
|
+
concurrency: {
|
|
55
|
+
group: "catladder-release-${{ github.ref_name }}",
|
|
56
|
+
"cancel-in-progress": false,
|
|
57
|
+
},
|
|
49
58
|
},
|
|
50
59
|
};
|
|
51
60
|
class GithubBackend {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GithubBackend.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/github/GithubBackend.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GithubBackend.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/github/GithubBackend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
export declare const GENERATED_CATCI_FOLDER = ".catladder-generated/catci";
|
|
2
|
+
/**
|
|
3
|
+
* the files that make up the materialized catci folder for a given
|
|
4
|
+
* bundle content
|
|
5
|
+
*/
|
|
6
|
+
export declare const makeCatciGeneratedFiles: (bundle: string) => Array<{
|
|
7
|
+
path: string;
|
|
8
|
+
content: string;
|
|
9
|
+
}>;
|
|
2
10
|
/**
|
|
3
11
|
* the catci files to materialize into the generated folder
|
|
4
12
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getCatciGeneratedFiles = exports.GENERATED_CATCI_FOLDER = void 0;
|
|
3
|
+
exports.getCatciGeneratedFiles = exports.makeCatciGeneratedFiles = exports.GENERATED_CATCI_FOLDER = void 0;
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const path_1 = require("path");
|
|
6
6
|
exports.GENERATED_CATCI_FOLDER = ".catladder-generated/catci";
|
|
@@ -28,13 +28,28 @@ const getShippedCatciBundle = () => {
|
|
|
28
28
|
return found;
|
|
29
29
|
};
|
|
30
30
|
/**
|
|
31
|
-
* the
|
|
31
|
+
* the files that make up the materialized catci folder for a given
|
|
32
|
+
* bundle content
|
|
32
33
|
*/
|
|
33
|
-
const
|
|
34
|
+
const makeCatciGeneratedFiles = (bundle) => [
|
|
34
35
|
{
|
|
35
36
|
path: (0, path_1.join)(exports.GENERATED_CATCI_FOLDER, "index.js"),
|
|
36
|
-
content:
|
|
37
|
+
content: bundle,
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
// the bundle is commonjs (ncc output using `__dirname`), but node
|
|
41
|
+
// resolves the module format from the nearest package.json: a
|
|
42
|
+
// consumer whose root package.json declares `"type": "module"`
|
|
43
|
+
// would parse the bundle as ESM and crash on the first `__dirname`.
|
|
44
|
+
// a sibling package.json pins the folder to commonjs regardless.
|
|
45
|
+
path: (0, path_1.join)(exports.GENERATED_CATCI_FOLDER, "package.json"),
|
|
46
|
+
content: `${JSON.stringify({ type: "commonjs" }, null, 2)}\n`,
|
|
37
47
|
},
|
|
38
48
|
];
|
|
49
|
+
exports.makeCatciGeneratedFiles = makeCatciGeneratedFiles;
|
|
50
|
+
/**
|
|
51
|
+
* the catci files to materialize into the generated folder
|
|
52
|
+
*/
|
|
53
|
+
const getCatciGeneratedFiles = () => (0, exports.makeCatciGeneratedFiles)((0, fs_1.readFileSync)(getShippedCatciBundle(), "utf-8"));
|
|
39
54
|
exports.getCatciGeneratedFiles = getCatciGeneratedFiles;
|
|
40
55
|
//# sourceMappingURL=shippedCatci.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shippedCatci.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/catci/shippedCatci.ts"],"names":[],"mappings":";;;AAAA,2BAA8C;AAC9C,+BAA4B;AAEf,QAAA,sBAAsB,GAAG,4BAA4B,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,qBAAqB,GAAG,GAAW,EAAE;IACzC,MAAM,UAAU,GAAG;QACjB,8EAA8E;QAC9E,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC;QAC1C,oFAAoF;QACpF,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC;QACvE,+EAA+E;QAC/E,IAAA,WAAI,EACF,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,KAAK,EACL,MAAM,EACN,SAAS,EACT,OAAO,EACP,UAAU,CACX;KACF,CAAC;IACF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAA,eAAU,EAAC,SAAS,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"shippedCatci.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/catci/shippedCatci.ts"],"names":[],"mappings":";;;AAAA,2BAA8C;AAC9C,+BAA4B;AAEf,QAAA,sBAAsB,GAAG,4BAA4B,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,qBAAqB,GAAG,GAAW,EAAE;IACzC,MAAM,UAAU,GAAG;QACjB,8EAA8E;QAC9E,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC;QAC1C,oFAAoF;QACpF,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC;QACvE,+EAA+E;QAC/E,IAAA,WAAI,EACF,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,KAAK,EACL,MAAM,EACN,SAAS,EACT,OAAO,EACP,UAAU,CACX;KACF,CAAC;IACF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAA,eAAU,EAAC,SAAS,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;GAGG;AACI,MAAM,uBAAuB,GAAG,CACrC,MAAc,EAC4B,EAAE,CAAC;IAC7C;QACE,IAAI,EAAE,IAAA,WAAI,EAAC,8BAAsB,EAAE,UAAU,CAAC;QAC9C,OAAO,EAAE,MAAM;KAChB;IACD;QACE,kEAAkE;QAClE,8DAA8D;QAC9D,+DAA+D;QAC/D,oEAAoE;QACpE,iEAAiE;QACjE,IAAI,EAAE,IAAA,WAAI,EAAC,8BAAsB,EAAE,cAAc,CAAC;QAClD,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;KAC9D;CACF,CAAC;AAhBW,QAAA,uBAAuB,2BAgBlC;AAEF;;GAEG;AACI,MAAM,sBAAsB,GAAG,GAGnC,EAAE,CAAC,IAAA,+BAAuB,EAAC,IAAA,iBAAY,EAAC,qBAAqB,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;AAHjE,QAAA,sBAAsB,0BAG2C"}
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
# (@semantic-release/git and @semantic-release/changelog need node >=24.15).
|
|
5
5
|
FROM node:24-alpine
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
# openssh: on github the release job pushes with the release deploy key
|
|
8
|
+
# over ssh (see scripts/semanticRelease)
|
|
9
|
+
RUN apk add --no-cache bash git git-lfs openssh-client
|
|
8
10
|
|
|
9
11
|
# add semantic release
|
|
10
12
|
# NOTE: pin every dependency exactly. These are the semantic-release@25 line
|
|
@@ -39,7 +39,34 @@ fi
|
|
|
39
39
|
|
|
40
40
|
echo "doing semantic release"
|
|
41
41
|
|
|
42
|
+
SEMANTIC_RELEASE_ARGS=()
|
|
43
|
+
# the commit message suffix, see the @semantic-release/git config below
|
|
44
|
+
RELEASE_COMMIT_SUFFIX=""
|
|
42
45
|
if [ "$GITHUB_ACTIONS" = "true" ]; then
|
|
46
|
+
# [skip ci] on github only: a push with the deploy key triggers
|
|
47
|
+
# workflows (unlike a push with GITHUB_TOKEN), and neither the release
|
|
48
|
+
# commit nor the tag needs a push-triggered run — the taggedRelease
|
|
49
|
+
# workflow is dispatched explicitly at the end, the marker keeps it
|
|
50
|
+
# the only run (same as the changesets path). On gitlab the tag
|
|
51
|
+
# pipeline MUST fire natively, so no marker there.
|
|
52
|
+
RELEASE_COMMIT_SUFFIX=" [skip ci]"
|
|
53
|
+
|
|
54
|
+
if [ -n "$CATLADDER_RELEASE_KEY" ]; then
|
|
55
|
+
# merge gating (a ruleset requiring the `catladder ✅` check on the
|
|
56
|
+
# default branch) rejects the release push unless it comes from the
|
|
57
|
+
# release deploy key — the workflow token can never bypass a
|
|
58
|
+
# ruleset. catci writes the key, points git's ssh at it and checks
|
|
59
|
+
# that the key reaches the repository (a clear failure here instead
|
|
60
|
+
# of a GH013 inside @semantic-release/git). The ssh url has to be
|
|
61
|
+
# passed explicitly: semantic-release takes package.json's
|
|
62
|
+
# `repository` over origin, and origin is the token-authenticated
|
|
63
|
+
# https url actions/checkout left behind.
|
|
64
|
+
RELEASE_REPOSITORY_URL=$(node "$CATCI" release github-deploy-key-remote)
|
|
65
|
+
SEMANTIC_RELEASE_ARGS+=(--repository-url "$RELEASE_REPOSITORY_URL")
|
|
66
|
+
else
|
|
67
|
+
echo "CATLADDER_RELEASE_KEY not set — pushing with the workflow token (fails on a repository with merge gating: run 'catladder project setup')"
|
|
68
|
+
fi
|
|
69
|
+
|
|
43
70
|
# the github counterpart of the gitlab plugin below: it creates the
|
|
44
71
|
# entry on the releases page with the generated notes. Everything
|
|
45
72
|
# beyond that is switched off on purpose — commenting on the
|
|
@@ -62,6 +89,10 @@ else
|
|
|
62
89
|
"@semantic-release/gitlab"'
|
|
63
90
|
fi
|
|
64
91
|
|
|
92
|
+
# NOTE: a project bringing its own .releaserc has to keep "[skip ci]" in
|
|
93
|
+
# the git plugin's commit message on github (see RELEASE_COMMIT_SUFFIX),
|
|
94
|
+
# otherwise a deploy-key push starts the main workflow for the release
|
|
95
|
+
# commit and a second taggedRelease run for the tag.
|
|
65
96
|
if [ ! -e .releaserc ]; then
|
|
66
97
|
cat >.releaserc <<EOF
|
|
67
98
|
{
|
|
@@ -98,7 +129,7 @@ if [ ! -e .releaserc ]; then
|
|
|
98
129
|
# loop-prevention rule keys on the literal "chore(release)" prefix, so keep
|
|
99
130
|
# this literal. Don't "fix" it back to \${branch.type}.
|
|
100
131
|
["@semantic-release/git", {
|
|
101
|
-
"message": "chore(release): \${nextRelease.version}\n\n\${nextRelease.notes}"
|
|
132
|
+
"message": "chore(release): \${nextRelease.version}${RELEASE_COMMIT_SUFFIX}\n\n\${nextRelease.notes}"
|
|
102
133
|
}]${PUBLISH_PLUGIN}
|
|
103
134
|
],
|
|
104
135
|
"branches": [
|
|
@@ -124,11 +155,13 @@ if [ "$GITHUB_ACTIONS" = "true" ]; then
|
|
|
124
155
|
TAGS_BEFORE=$(git tag --list 'v[0-9]*')
|
|
125
156
|
fi
|
|
126
157
|
|
|
127
|
-
semantic-release
|
|
158
|
+
semantic-release "${SEMANTIC_RELEASE_ARGS[@]}"
|
|
128
159
|
|
|
129
160
|
# tags pushed with the default GITHUB_TOKEN don't trigger `on: push:
|
|
130
|
-
# tags` workflows (github's recursion guard)
|
|
131
|
-
#
|
|
161
|
+
# tags` workflows (github's recursion guard), and a deploy-key push
|
|
162
|
+
# carries [skip ci] (see above) — dispatch the taggedRelease workflow
|
|
163
|
+
# explicitly for a tag semantic-release created, whichever way it was
|
|
164
|
+
# pushed
|
|
132
165
|
if [ "$GITHUB_ACTIONS" = "true" ] && [ -f "$CATCI" ]; then
|
|
133
166
|
if [ -z "$TAGS_BEFORE" ]; then
|
|
134
167
|
NEW_TAG=$(git tag --list 'v[0-9]*' | tail -n1)
|