@catladder/cli 0.0.0-next-dc12de13 → 0.0.0-next-3675a1db
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 +114 -15
- package/dist/bundles/cli/index.js +114 -15
- package/dist/bundles/skills/catladder-migrate-ci-backend/SKILL.md +15 -0
- package/dist/packages/pipeline/src/backends/github/GithubBackend.js +12 -1
- package/dist/packages/pipeline/src/backends/github/GithubBackend.js.map +1 -1
- package/dist/packages/pipeline/src/backends/github/aggregateCheckJob.d.ts +26 -0
- package/dist/packages/pipeline/src/backends/github/aggregateCheckJob.js +52 -0
- package/dist/packages/pipeline/src/backends/github/aggregateCheckJob.js.map +1 -0
- package/dist/packages/pipeline/src/backends/gitlab/GitlabBackend.js +4 -14
- package/dist/packages/pipeline/src/backends/gitlab/GitlabBackend.js.map +1 -1
- package/dist/packages/pipeline/src/backends/gitlab/releaseGateJobs.d.ts +25 -0
- package/dist/packages/pipeline/src/backends/gitlab/releaseGateJobs.js +32 -0
- package/dist/packages/pipeline/src/backends/gitlab/releaseGateJobs.js.map +1 -0
- package/dist/skills/catladder-migrate-ci-backend/SKILL.md +15 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -2289,6 +2289,7 @@ const index_1 = __nccwpck_require__(68906);
|
|
|
2289
2289
|
const createGithubJobs_1 = __nccwpck_require__(57877);
|
|
2290
2290
|
const jobImagesPlan_1 = __nccwpck_require__(47864);
|
|
2291
2291
|
const ensureImageJobs_1 = __nccwpck_require__(70051);
|
|
2292
|
+
const aggregateCheckJob_1 = __nccwpck_require__(88288);
|
|
2292
2293
|
const shippedCatci_1 = __nccwpck_require__(79024);
|
|
2293
2294
|
const githubReleaseJobs_1 = __nccwpck_require__(89800);
|
|
2294
2295
|
const scriptFiles_1 = __nccwpck_require__(30966);
|
|
@@ -2505,11 +2506,21 @@ class GithubBackend {
|
|
|
2505
2506
|
}
|
|
2506
2507
|
}
|
|
2507
2508
|
if (Object.keys(jobs).length > 0) {
|
|
2509
|
+
const workflowJobs = { ...(0, ensureImageJobs_1.makeEnsureImageGithubJobs)(images), ...jobs };
|
|
2508
2510
|
workflows[`${GENERATED_FILE_PREFIX}${workflowFileName(trigger)}`] = {
|
|
2509
2511
|
...TRIGGER_WORKFLOWS[trigger],
|
|
2510
2512
|
...workflowPermissions(images),
|
|
2511
2513
|
env: workflowEnv,
|
|
2512
|
-
|
|
2514
|
+
// the review workflow additionally gets the aggregate job —
|
|
2515
|
+
// the one stable required-status context for branch
|
|
2516
|
+
// protection. Requiring real job names instead goes stale on
|
|
2517
|
+
// every component change: a renamed required job blocks its
|
|
2518
|
+
// own PR forever, a new component's jobs are silently not
|
|
2519
|
+
// required. Added at finalization so its needs cover the
|
|
2520
|
+
// image-build jobs too.
|
|
2521
|
+
jobs: trigger === "mr"
|
|
2522
|
+
? { ...workflowJobs, ...(0, aggregateCheckJob_1.makeAggregateCheckJob)(workflowJobs) }
|
|
2523
|
+
: workflowJobs,
|
|
2513
2524
|
};
|
|
2514
2525
|
}
|
|
2515
2526
|
}
|
|
@@ -2637,6 +2648,65 @@ const manualKind = (job) => job.stage === "stop"
|
|
|
2637
2648
|
|
|
2638
2649
|
/***/ }),
|
|
2639
2650
|
|
|
2651
|
+
/***/ 88288:
|
|
2652
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
2653
|
+
|
|
2654
|
+
"use strict";
|
|
2655
|
+
|
|
2656
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2657
|
+
exports.makeAggregateCheckJob = exports.AGGREGATE_CHECK_JOB_NAME = exports.AGGREGATE_CHECK_JOB_ID = void 0;
|
|
2658
|
+
exports.AGGREGATE_CHECK_JOB_ID = "catladder-ok";
|
|
2659
|
+
exports.AGGREGATE_CHECK_JOB_NAME = "catladder ✅";
|
|
2660
|
+
/**
|
|
2661
|
+
* one job that succeeds exactly when every other job of the review
|
|
2662
|
+
* workflow succeeded — the single, STABLE required-status context for
|
|
2663
|
+
* branch protection.
|
|
2664
|
+
*
|
|
2665
|
+
* Requiring the real job names instead goes stale on every component
|
|
2666
|
+
* change: a renamed required job never reports on the very PR that
|
|
2667
|
+
* renames it ("Expected — waiting for status", unmergeable), and a new
|
|
2668
|
+
* component's jobs are silently not required at all. This job's `needs`
|
|
2669
|
+
* are regenerated with the workflow, so protection stays correct with
|
|
2670
|
+
* a single one-time setup.
|
|
2671
|
+
*
|
|
2672
|
+
* Semantics:
|
|
2673
|
+
* - `if: always()` — the job must run (and fail) when an ancestor
|
|
2674
|
+
* failed; without it a failed need would leave it skipped, and a
|
|
2675
|
+
* skipped required check blocks the merge with no explanation.
|
|
2676
|
+
* - a skipped need counts as failure: review jobs are unconditional,
|
|
2677
|
+
* so skipped always means "an ancestor failed".
|
|
2678
|
+
* - `continue-on-error` jobs (security audit, changeset check) report
|
|
2679
|
+
* `success` to `needs` even when red, so they stay non-blocking here
|
|
2680
|
+
* by the same mechanism that keeps their workflow green.
|
|
2681
|
+
*/
|
|
2682
|
+
const makeAggregateCheckJob = (reviewJobs) => ({
|
|
2683
|
+
[exports.AGGREGATE_CHECK_JOB_ID]: {
|
|
2684
|
+
name: exports.AGGREGATE_CHECK_JOB_NAME,
|
|
2685
|
+
"runs-on": "ubuntu-latest",
|
|
2686
|
+
needs: Object.keys(reviewJobs).sort(),
|
|
2687
|
+
if: "always()",
|
|
2688
|
+
steps: [
|
|
2689
|
+
{
|
|
2690
|
+
name: exports.AGGREGATE_CHECK_JOB_NAME,
|
|
2691
|
+
// the needs context only interpolates inside the workflow file,
|
|
2692
|
+
// so this script stays inline
|
|
2693
|
+
run: [
|
|
2694
|
+
`results='\${{ toJSON(needs) }}'`,
|
|
2695
|
+
`echo "$results"`,
|
|
2696
|
+
`if echo "$results" | grep -qE '"result": "(failure|cancelled|skipped)"'; then`,
|
|
2697
|
+
` echo "a required job did not succeed"; exit 1`,
|
|
2698
|
+
`fi`,
|
|
2699
|
+
].join("\n"),
|
|
2700
|
+
shell: "bash",
|
|
2701
|
+
},
|
|
2702
|
+
],
|
|
2703
|
+
},
|
|
2704
|
+
});
|
|
2705
|
+
exports.makeAggregateCheckJob = makeAggregateCheckJob;
|
|
2706
|
+
//# sourceMappingURL=aggregateCheckJob.js.map
|
|
2707
|
+
|
|
2708
|
+
/***/ }),
|
|
2709
|
+
|
|
2640
2710
|
/***/ 88393:
|
|
2641
2711
|
/***/ ((__unused_webpack_module, exports) => {
|
|
2642
2712
|
|
|
@@ -3584,6 +3654,7 @@ const createGitlabJobs_1 = __nccwpck_require__(41509);
|
|
|
3584
3654
|
const createGitlabPipeline_1 = __nccwpck_require__(94411);
|
|
3585
3655
|
const gitlabReleaseJobs_1 = __nccwpck_require__(75512);
|
|
3586
3656
|
const getPipelineStages_1 = __nccwpck_require__(29641);
|
|
3657
|
+
const releaseGateJobs_1 = __nccwpck_require__(80634);
|
|
3587
3658
|
const sortGitLabJobDefProps_1 = __nccwpck_require__(71625);
|
|
3588
3659
|
const writeFiles_1 = __nccwpck_require__(7396);
|
|
3589
3660
|
const CATLADDER_GENERATED_FOLDER = ".catladder-generated";
|
|
@@ -3694,20 +3765,9 @@ class GitlabBackend {
|
|
|
3694
3765
|
.filter(({ trigger }) => trigger === "mainBranch")
|
|
3695
3766
|
.flatMap(({ jobs }) => jobs)
|
|
3696
3767
|
.filter(({ gitlabJob }) => !isManualGitlabJob(gitlabJob));
|
|
3697
|
-
//
|
|
3698
|
-
//
|
|
3699
|
-
|
|
3700
|
-
// SINKS of the auto-job graph (test/lint/audit and the deploy or
|
|
3701
|
-
// verify tips) — everything upstream is implied. This keeps the
|
|
3702
|
-
// executor's needs list far below gitlab's 50-entry cap even on
|
|
3703
|
-
// pipelines with many components.
|
|
3704
|
-
const neededByAnAutoJob = new Set(mainBranchAutoJobs.flatMap(({ gitlabJob }) => {
|
|
3705
|
-
var _a;
|
|
3706
|
-
return ((_a = gitlabJob.needs) !== null && _a !== void 0 ? _a : []).map((need) => typeof need === "string" ? need : need.job);
|
|
3707
|
-
}));
|
|
3708
|
-
const mainBranchJobNames = [
|
|
3709
|
-
...new Set(mainBranchAutoJobs.map(({ name }) => name)),
|
|
3710
|
-
].filter((name) => !neededByAnAutoJob.has(name));
|
|
3768
|
+
// only the sinks of the auto-job graph — every other auto job is
|
|
3769
|
+
// awaited transitively through them (see releaseGateJobs.ts)
|
|
3770
|
+
const mainBranchJobNames = (0, releaseGateJobs_1.getReleaseGateJobNames)(mainBranchAutoJobs);
|
|
3711
3771
|
const releaseJobs = (0, gitlabReleaseJobs_1.getGitlabReleaseJobs)(config, images, mainBranchJobNames);
|
|
3712
3772
|
const allWorkspaceJobs = allJobsPerTrigger
|
|
3713
3773
|
.filter((j) => { var _a; return ((_a = j.context) === null || _a === void 0 ? void 0 : _a.type) === "workspace"; }) // sort by componentName in the same order as they appear in the config
|
|
@@ -4525,6 +4585,45 @@ __exportStar(__nccwpck_require__(75512), exports);
|
|
|
4525
4585
|
|
|
4526
4586
|
/***/ }),
|
|
4527
4587
|
|
|
4588
|
+
/***/ 80634:
|
|
4589
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
4590
|
+
|
|
4591
|
+
"use strict";
|
|
4592
|
+
|
|
4593
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
4594
|
+
exports.getReleaseGateJobNames = void 0;
|
|
4595
|
+
/**
|
|
4596
|
+
* the jobs the queued-release executor must `needs:` so that it runs
|
|
4597
|
+
* exactly when the whole main-branch pipeline succeeded.
|
|
4598
|
+
*
|
|
4599
|
+
* `needs:` is transitive: a job that another automatic job needs is
|
|
4600
|
+
* already awaited through that job, and a failed ancestor skips its
|
|
4601
|
+
* descendants (and with them the executor) either way. The executor
|
|
4602
|
+
* therefore only needs the SINKS of the auto-job graph — the jobs no
|
|
4603
|
+
* other automatic job depends on (deploy/verify tips, terminal
|
|
4604
|
+
* test/lint/audit). This keeps the needs list far below gitlab's
|
|
4605
|
+
* 50-entry cap even on pipelines with many components.
|
|
4606
|
+
*
|
|
4607
|
+
* INVARIANT (do not weaken): every automatic job is an ancestor of the
|
|
4608
|
+
* returned set. This holds for ANY graph shape, because the sinks are
|
|
4609
|
+
* recomputed from the actual needs edges on every generation — if e.g.
|
|
4610
|
+
* deploys ever stop needing the test jobs, the test jobs become sinks
|
|
4611
|
+
* and re-enter the executor's needs by themselves. Only needs FROM
|
|
4612
|
+
* automatic jobs count: a job consumed solely by manual jobs is a sink
|
|
4613
|
+
* too, and keeps gating the release directly.
|
|
4614
|
+
*/
|
|
4615
|
+
const getReleaseGateJobNames = (autoJobs) => {
|
|
4616
|
+
const neededByAnAutoJob = new Set(autoJobs.flatMap(({ gitlabJob }) => {
|
|
4617
|
+
var _a;
|
|
4618
|
+
return ((_a = gitlabJob.needs) !== null && _a !== void 0 ? _a : []).map((need) => typeof need === "string" ? need : need.job);
|
|
4619
|
+
}));
|
|
4620
|
+
return [...new Set(autoJobs.map(({ name }) => name))].filter((name) => !neededByAnAutoJob.has(name));
|
|
4621
|
+
};
|
|
4622
|
+
exports.getReleaseGateJobNames = getReleaseGateJobNames;
|
|
4623
|
+
//# sourceMappingURL=releaseGateJobs.js.map
|
|
4624
|
+
|
|
4625
|
+
/***/ }),
|
|
4626
|
+
|
|
4528
4627
|
/***/ 71625:
|
|
4529
4628
|
/***/ ((__unused_webpack_module, exports) => {
|
|
4530
4629
|
|
|
@@ -8317,6 +8317,7 @@ const index_1 = __nccwpck_require__(68906);
|
|
|
8317
8317
|
const createGithubJobs_1 = __nccwpck_require__(57877);
|
|
8318
8318
|
const jobImagesPlan_1 = __nccwpck_require__(47864);
|
|
8319
8319
|
const ensureImageJobs_1 = __nccwpck_require__(70051);
|
|
8320
|
+
const aggregateCheckJob_1 = __nccwpck_require__(88288);
|
|
8320
8321
|
const shippedCatci_1 = __nccwpck_require__(79024);
|
|
8321
8322
|
const githubReleaseJobs_1 = __nccwpck_require__(89800);
|
|
8322
8323
|
const scriptFiles_1 = __nccwpck_require__(30966);
|
|
@@ -8533,11 +8534,21 @@ class GithubBackend {
|
|
|
8533
8534
|
}
|
|
8534
8535
|
}
|
|
8535
8536
|
if (Object.keys(jobs).length > 0) {
|
|
8537
|
+
const workflowJobs = { ...(0, ensureImageJobs_1.makeEnsureImageGithubJobs)(images), ...jobs };
|
|
8536
8538
|
workflows[`${GENERATED_FILE_PREFIX}${workflowFileName(trigger)}`] = {
|
|
8537
8539
|
...TRIGGER_WORKFLOWS[trigger],
|
|
8538
8540
|
...workflowPermissions(images),
|
|
8539
8541
|
env: workflowEnv,
|
|
8540
|
-
|
|
8542
|
+
// the review workflow additionally gets the aggregate job —
|
|
8543
|
+
// the one stable required-status context for branch
|
|
8544
|
+
// protection. Requiring real job names instead goes stale on
|
|
8545
|
+
// every component change: a renamed required job blocks its
|
|
8546
|
+
// own PR forever, a new component's jobs are silently not
|
|
8547
|
+
// required. Added at finalization so its needs cover the
|
|
8548
|
+
// image-build jobs too.
|
|
8549
|
+
jobs: trigger === "mr"
|
|
8550
|
+
? { ...workflowJobs, ...(0, aggregateCheckJob_1.makeAggregateCheckJob)(workflowJobs) }
|
|
8551
|
+
: workflowJobs,
|
|
8541
8552
|
};
|
|
8542
8553
|
}
|
|
8543
8554
|
}
|
|
@@ -8665,6 +8676,65 @@ const manualKind = (job) => job.stage === "stop"
|
|
|
8665
8676
|
|
|
8666
8677
|
/***/ }),
|
|
8667
8678
|
|
|
8679
|
+
/***/ 88288:
|
|
8680
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
8681
|
+
|
|
8682
|
+
"use strict";
|
|
8683
|
+
|
|
8684
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
8685
|
+
exports.makeAggregateCheckJob = exports.AGGREGATE_CHECK_JOB_NAME = exports.AGGREGATE_CHECK_JOB_ID = void 0;
|
|
8686
|
+
exports.AGGREGATE_CHECK_JOB_ID = "catladder-ok";
|
|
8687
|
+
exports.AGGREGATE_CHECK_JOB_NAME = "catladder ✅";
|
|
8688
|
+
/**
|
|
8689
|
+
* one job that succeeds exactly when every other job of the review
|
|
8690
|
+
* workflow succeeded — the single, STABLE required-status context for
|
|
8691
|
+
* branch protection.
|
|
8692
|
+
*
|
|
8693
|
+
* Requiring the real job names instead goes stale on every component
|
|
8694
|
+
* change: a renamed required job never reports on the very PR that
|
|
8695
|
+
* renames it ("Expected — waiting for status", unmergeable), and a new
|
|
8696
|
+
* component's jobs are silently not required at all. This job's `needs`
|
|
8697
|
+
* are regenerated with the workflow, so protection stays correct with
|
|
8698
|
+
* a single one-time setup.
|
|
8699
|
+
*
|
|
8700
|
+
* Semantics:
|
|
8701
|
+
* - `if: always()` — the job must run (and fail) when an ancestor
|
|
8702
|
+
* failed; without it a failed need would leave it skipped, and a
|
|
8703
|
+
* skipped required check blocks the merge with no explanation.
|
|
8704
|
+
* - a skipped need counts as failure: review jobs are unconditional,
|
|
8705
|
+
* so skipped always means "an ancestor failed".
|
|
8706
|
+
* - `continue-on-error` jobs (security audit, changeset check) report
|
|
8707
|
+
* `success` to `needs` even when red, so they stay non-blocking here
|
|
8708
|
+
* by the same mechanism that keeps their workflow green.
|
|
8709
|
+
*/
|
|
8710
|
+
const makeAggregateCheckJob = (reviewJobs) => ({
|
|
8711
|
+
[exports.AGGREGATE_CHECK_JOB_ID]: {
|
|
8712
|
+
name: exports.AGGREGATE_CHECK_JOB_NAME,
|
|
8713
|
+
"runs-on": "ubuntu-latest",
|
|
8714
|
+
needs: Object.keys(reviewJobs).sort(),
|
|
8715
|
+
if: "always()",
|
|
8716
|
+
steps: [
|
|
8717
|
+
{
|
|
8718
|
+
name: exports.AGGREGATE_CHECK_JOB_NAME,
|
|
8719
|
+
// the needs context only interpolates inside the workflow file,
|
|
8720
|
+
// so this script stays inline
|
|
8721
|
+
run: [
|
|
8722
|
+
`results='\${{ toJSON(needs) }}'`,
|
|
8723
|
+
`echo "$results"`,
|
|
8724
|
+
`if echo "$results" | grep -qE '"result": "(failure|cancelled|skipped)"'; then`,
|
|
8725
|
+
` echo "a required job did not succeed"; exit 1`,
|
|
8726
|
+
`fi`,
|
|
8727
|
+
].join("\n"),
|
|
8728
|
+
shell: "bash",
|
|
8729
|
+
},
|
|
8730
|
+
],
|
|
8731
|
+
},
|
|
8732
|
+
});
|
|
8733
|
+
exports.makeAggregateCheckJob = makeAggregateCheckJob;
|
|
8734
|
+
//# sourceMappingURL=aggregateCheckJob.js.map
|
|
8735
|
+
|
|
8736
|
+
/***/ }),
|
|
8737
|
+
|
|
8668
8738
|
/***/ 88393:
|
|
8669
8739
|
/***/ ((__unused_webpack_module, exports) => {
|
|
8670
8740
|
|
|
@@ -9612,6 +9682,7 @@ const createGitlabJobs_1 = __nccwpck_require__(41509);
|
|
|
9612
9682
|
const createGitlabPipeline_1 = __nccwpck_require__(94411);
|
|
9613
9683
|
const gitlabReleaseJobs_1 = __nccwpck_require__(75512);
|
|
9614
9684
|
const getPipelineStages_1 = __nccwpck_require__(29641);
|
|
9685
|
+
const releaseGateJobs_1 = __nccwpck_require__(80634);
|
|
9615
9686
|
const sortGitLabJobDefProps_1 = __nccwpck_require__(71625);
|
|
9616
9687
|
const writeFiles_1 = __nccwpck_require__(7396);
|
|
9617
9688
|
const CATLADDER_GENERATED_FOLDER = ".catladder-generated";
|
|
@@ -9722,20 +9793,9 @@ class GitlabBackend {
|
|
|
9722
9793
|
.filter(({ trigger }) => trigger === "mainBranch")
|
|
9723
9794
|
.flatMap(({ jobs }) => jobs)
|
|
9724
9795
|
.filter(({ gitlabJob }) => !isManualGitlabJob(gitlabJob));
|
|
9725
|
-
//
|
|
9726
|
-
//
|
|
9727
|
-
|
|
9728
|
-
// SINKS of the auto-job graph (test/lint/audit and the deploy or
|
|
9729
|
-
// verify tips) — everything upstream is implied. This keeps the
|
|
9730
|
-
// executor's needs list far below gitlab's 50-entry cap even on
|
|
9731
|
-
// pipelines with many components.
|
|
9732
|
-
const neededByAnAutoJob = new Set(mainBranchAutoJobs.flatMap(({ gitlabJob }) => {
|
|
9733
|
-
var _a;
|
|
9734
|
-
return ((_a = gitlabJob.needs) !== null && _a !== void 0 ? _a : []).map((need) => typeof need === "string" ? need : need.job);
|
|
9735
|
-
}));
|
|
9736
|
-
const mainBranchJobNames = [
|
|
9737
|
-
...new Set(mainBranchAutoJobs.map(({ name }) => name)),
|
|
9738
|
-
].filter((name) => !neededByAnAutoJob.has(name));
|
|
9796
|
+
// only the sinks of the auto-job graph — every other auto job is
|
|
9797
|
+
// awaited transitively through them (see releaseGateJobs.ts)
|
|
9798
|
+
const mainBranchJobNames = (0, releaseGateJobs_1.getReleaseGateJobNames)(mainBranchAutoJobs);
|
|
9739
9799
|
const releaseJobs = (0, gitlabReleaseJobs_1.getGitlabReleaseJobs)(config, images, mainBranchJobNames);
|
|
9740
9800
|
const allWorkspaceJobs = allJobsPerTrigger
|
|
9741
9801
|
.filter((j) => { var _a; return ((_a = j.context) === null || _a === void 0 ? void 0 : _a.type) === "workspace"; }) // sort by componentName in the same order as they appear in the config
|
|
@@ -10553,6 +10613,45 @@ __exportStar(__nccwpck_require__(75512), exports);
|
|
|
10553
10613
|
|
|
10554
10614
|
/***/ }),
|
|
10555
10615
|
|
|
10616
|
+
/***/ 80634:
|
|
10617
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
10618
|
+
|
|
10619
|
+
"use strict";
|
|
10620
|
+
|
|
10621
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
10622
|
+
exports.getReleaseGateJobNames = void 0;
|
|
10623
|
+
/**
|
|
10624
|
+
* the jobs the queued-release executor must `needs:` so that it runs
|
|
10625
|
+
* exactly when the whole main-branch pipeline succeeded.
|
|
10626
|
+
*
|
|
10627
|
+
* `needs:` is transitive: a job that another automatic job needs is
|
|
10628
|
+
* already awaited through that job, and a failed ancestor skips its
|
|
10629
|
+
* descendants (and with them the executor) either way. The executor
|
|
10630
|
+
* therefore only needs the SINKS of the auto-job graph — the jobs no
|
|
10631
|
+
* other automatic job depends on (deploy/verify tips, terminal
|
|
10632
|
+
* test/lint/audit). This keeps the needs list far below gitlab's
|
|
10633
|
+
* 50-entry cap even on pipelines with many components.
|
|
10634
|
+
*
|
|
10635
|
+
* INVARIANT (do not weaken): every automatic job is an ancestor of the
|
|
10636
|
+
* returned set. This holds for ANY graph shape, because the sinks are
|
|
10637
|
+
* recomputed from the actual needs edges on every generation — if e.g.
|
|
10638
|
+
* deploys ever stop needing the test jobs, the test jobs become sinks
|
|
10639
|
+
* and re-enter the executor's needs by themselves. Only needs FROM
|
|
10640
|
+
* automatic jobs count: a job consumed solely by manual jobs is a sink
|
|
10641
|
+
* too, and keeps gating the release directly.
|
|
10642
|
+
*/
|
|
10643
|
+
const getReleaseGateJobNames = (autoJobs) => {
|
|
10644
|
+
const neededByAnAutoJob = new Set(autoJobs.flatMap(({ gitlabJob }) => {
|
|
10645
|
+
var _a;
|
|
10646
|
+
return ((_a = gitlabJob.needs) !== null && _a !== void 0 ? _a : []).map((need) => typeof need === "string" ? need : need.job);
|
|
10647
|
+
}));
|
|
10648
|
+
return [...new Set(autoJobs.map(({ name }) => name))].filter((name) => !neededByAnAutoJob.has(name));
|
|
10649
|
+
};
|
|
10650
|
+
exports.getReleaseGateJobNames = getReleaseGateJobNames;
|
|
10651
|
+
//# sourceMappingURL=releaseGateJobs.js.map
|
|
10652
|
+
|
|
10653
|
+
/***/ }),
|
|
10654
|
+
|
|
10556
10655
|
/***/ 71625:
|
|
10557
10656
|
/***/ ((__unused_webpack_module, exports) => {
|
|
10558
10657
|
|
|
@@ -255,6 +255,21 @@ now-wrong `gitRemote`, regenerate once more, and finish with
|
|
|
255
255
|
|
|
256
256
|
## After the cut-over
|
|
257
257
|
|
|
258
|
+
- **Set up merge gating — GitHub has none by default.** On GitLab,
|
|
259
|
+
"merge when pipeline succeeds" is built in; on a fresh GitHub repo a
|
|
260
|
+
PR is mergeable the moment it opens, checks still running, and the
|
|
261
|
+
auto-merge button does not even appear. Two one-time settings fix it:
|
|
262
|
+
1. Settings → General → Pull Requests → enable **"Allow auto-merge"**
|
|
263
|
+
(and "Automatically delete head branches" while there)
|
|
264
|
+
2. a branch protection rule on the default branch requiring the
|
|
265
|
+
**`catladder ✅`** status check — the aggregate job catladder
|
|
266
|
+
generates into the review workflow precisely for this. Require
|
|
267
|
+
only this one context, never individual job names: those change
|
|
268
|
+
with every component add/rename, and a stale required name blocks
|
|
269
|
+
the renaming PR forever ("Expected — waiting for status").
|
|
270
|
+
Consider leaving "enforce for administrators" off: this repo's CI is
|
|
271
|
+
generated, so if generation itself ever breaks, the admin bypass is
|
|
272
|
+
what lets the fix merge.
|
|
258
273
|
- Tell the team where the pipeline lives now and how manual actions
|
|
259
274
|
work there (on GitHub, manual jobs are dispatch workflows in the
|
|
260
275
|
Actions sidebar — `🚀 catladder create release`, `▶️ catladder deploy`,
|
|
@@ -10,6 +10,7 @@ const index_1 = require("../index");
|
|
|
10
10
|
const createGithubJobs_1 = require("./createGithubJobs");
|
|
11
11
|
const jobImagesPlan_1 = require("../../customImages/jobImagesPlan");
|
|
12
12
|
const ensureImageJobs_1 = require("./ensureImageJobs");
|
|
13
|
+
const aggregateCheckJob_1 = require("./aggregateCheckJob");
|
|
13
14
|
const shippedCatci_1 = require("../../catci/shippedCatci");
|
|
14
15
|
const githubReleaseJobs_1 = require("./githubReleaseJobs");
|
|
15
16
|
const scriptFiles_1 = require("./scriptFiles");
|
|
@@ -226,11 +227,21 @@ class GithubBackend {
|
|
|
226
227
|
}
|
|
227
228
|
}
|
|
228
229
|
if (Object.keys(jobs).length > 0) {
|
|
230
|
+
const workflowJobs = { ...(0, ensureImageJobs_1.makeEnsureImageGithubJobs)(images), ...jobs };
|
|
229
231
|
workflows[`${GENERATED_FILE_PREFIX}${workflowFileName(trigger)}`] = {
|
|
230
232
|
...TRIGGER_WORKFLOWS[trigger],
|
|
231
233
|
...workflowPermissions(images),
|
|
232
234
|
env: workflowEnv,
|
|
233
|
-
|
|
235
|
+
// the review workflow additionally gets the aggregate job —
|
|
236
|
+
// the one stable required-status context for branch
|
|
237
|
+
// protection. Requiring real job names instead goes stale on
|
|
238
|
+
// every component change: a renamed required job blocks its
|
|
239
|
+
// own PR forever, a new component's jobs are silently not
|
|
240
|
+
// required. Added at finalization so its needs cover the
|
|
241
|
+
// image-build jobs too.
|
|
242
|
+
jobs: trigger === "mr"
|
|
243
|
+
? { ...workflowJobs, ...(0, aggregateCheckJob_1.makeAggregateCheckJob)(workflowJobs) }
|
|
244
|
+
: workflowJobs,
|
|
234
245
|
};
|
|
235
246
|
}
|
|
236
247
|
}
|
|
@@ -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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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { GithubJob } from "../../types/github-types";
|
|
2
|
+
export declare const AGGREGATE_CHECK_JOB_ID = "catladder-ok";
|
|
3
|
+
export declare const AGGREGATE_CHECK_JOB_NAME = "catladder \u2705";
|
|
4
|
+
/**
|
|
5
|
+
* one job that succeeds exactly when every other job of the review
|
|
6
|
+
* workflow succeeded — the single, STABLE required-status context for
|
|
7
|
+
* branch protection.
|
|
8
|
+
*
|
|
9
|
+
* Requiring the real job names instead goes stale on every component
|
|
10
|
+
* change: a renamed required job never reports on the very PR that
|
|
11
|
+
* renames it ("Expected — waiting for status", unmergeable), and a new
|
|
12
|
+
* component's jobs are silently not required at all. This job's `needs`
|
|
13
|
+
* are regenerated with the workflow, so protection stays correct with
|
|
14
|
+
* a single one-time setup.
|
|
15
|
+
*
|
|
16
|
+
* Semantics:
|
|
17
|
+
* - `if: always()` — the job must run (and fail) when an ancestor
|
|
18
|
+
* failed; without it a failed need would leave it skipped, and a
|
|
19
|
+
* skipped required check blocks the merge with no explanation.
|
|
20
|
+
* - a skipped need counts as failure: review jobs are unconditional,
|
|
21
|
+
* so skipped always means "an ancestor failed".
|
|
22
|
+
* - `continue-on-error` jobs (security audit, changeset check) report
|
|
23
|
+
* `success` to `needs` even when red, so they stay non-blocking here
|
|
24
|
+
* by the same mechanism that keeps their workflow green.
|
|
25
|
+
*/
|
|
26
|
+
export declare const makeAggregateCheckJob: (reviewJobs: Record<string, GithubJob>) => Record<string, GithubJob>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeAggregateCheckJob = exports.AGGREGATE_CHECK_JOB_NAME = exports.AGGREGATE_CHECK_JOB_ID = void 0;
|
|
4
|
+
exports.AGGREGATE_CHECK_JOB_ID = "catladder-ok";
|
|
5
|
+
exports.AGGREGATE_CHECK_JOB_NAME = "catladder ✅";
|
|
6
|
+
/**
|
|
7
|
+
* one job that succeeds exactly when every other job of the review
|
|
8
|
+
* workflow succeeded — the single, STABLE required-status context for
|
|
9
|
+
* branch protection.
|
|
10
|
+
*
|
|
11
|
+
* Requiring the real job names instead goes stale on every component
|
|
12
|
+
* change: a renamed required job never reports on the very PR that
|
|
13
|
+
* renames it ("Expected — waiting for status", unmergeable), and a new
|
|
14
|
+
* component's jobs are silently not required at all. This job's `needs`
|
|
15
|
+
* are regenerated with the workflow, so protection stays correct with
|
|
16
|
+
* a single one-time setup.
|
|
17
|
+
*
|
|
18
|
+
* Semantics:
|
|
19
|
+
* - `if: always()` — the job must run (and fail) when an ancestor
|
|
20
|
+
* failed; without it a failed need would leave it skipped, and a
|
|
21
|
+
* skipped required check blocks the merge with no explanation.
|
|
22
|
+
* - a skipped need counts as failure: review jobs are unconditional,
|
|
23
|
+
* so skipped always means "an ancestor failed".
|
|
24
|
+
* - `continue-on-error` jobs (security audit, changeset check) report
|
|
25
|
+
* `success` to `needs` even when red, so they stay non-blocking here
|
|
26
|
+
* by the same mechanism that keeps their workflow green.
|
|
27
|
+
*/
|
|
28
|
+
const makeAggregateCheckJob = (reviewJobs) => ({
|
|
29
|
+
[exports.AGGREGATE_CHECK_JOB_ID]: {
|
|
30
|
+
name: exports.AGGREGATE_CHECK_JOB_NAME,
|
|
31
|
+
"runs-on": "ubuntu-latest",
|
|
32
|
+
needs: Object.keys(reviewJobs).sort(),
|
|
33
|
+
if: "always()",
|
|
34
|
+
steps: [
|
|
35
|
+
{
|
|
36
|
+
name: exports.AGGREGATE_CHECK_JOB_NAME,
|
|
37
|
+
// the needs context only interpolates inside the workflow file,
|
|
38
|
+
// so this script stays inline
|
|
39
|
+
run: [
|
|
40
|
+
`results='\${{ toJSON(needs) }}'`,
|
|
41
|
+
`echo "$results"`,
|
|
42
|
+
`if echo "$results" | grep -qE '"result": "(failure|cancelled|skipped)"'; then`,
|
|
43
|
+
` echo "a required job did not succeed"; exit 1`,
|
|
44
|
+
`fi`,
|
|
45
|
+
].join("\n"),
|
|
46
|
+
shell: "bash",
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
exports.makeAggregateCheckJob = makeAggregateCheckJob;
|
|
52
|
+
//# sourceMappingURL=aggregateCheckJob.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregateCheckJob.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/github/aggregateCheckJob.ts"],"names":[],"mappings":";;;AAEa,QAAA,sBAAsB,GAAG,cAAc,CAAC;AACxC,QAAA,wBAAwB,GAAG,aAAa,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACI,MAAM,qBAAqB,GAAG,CACnC,UAAqC,EACV,EAAE,CAAC,CAAC;IAC/B,CAAC,8BAAsB,CAAC,EAAE;QACxB,IAAI,EAAE,gCAAwB;QAC9B,SAAS,EAAE,eAAe;QAC1B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE;QACrC,EAAE,EAAE,UAAU;QACd,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,gCAAwB;gBAC9B,gEAAgE;gBAChE,8BAA8B;gBAC9B,GAAG,EAAE;oBACH,iCAAiC;oBACjC,iBAAiB;oBACjB,+EAA+E;oBAC/E,iDAAiD;oBACjD,IAAI;iBACL,CAAC,IAAI,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,MAAM;aACd;SACF;KACF;CACF,CAAC,CAAC;AAxBU,QAAA,qBAAqB,yBAwB/B"}
|
|
@@ -13,6 +13,7 @@ const createGitlabJobs_1 = require("./createGitlabJobs");
|
|
|
13
13
|
const createGitlabPipeline_1 = require("./createGitlabPipeline");
|
|
14
14
|
const gitlabReleaseJobs_1 = require("./gitlabReleaseJobs");
|
|
15
15
|
const getPipelineStages_1 = require("./getPipelineStages");
|
|
16
|
+
const releaseGateJobs_1 = require("./releaseGateJobs");
|
|
16
17
|
const sortGitLabJobDefProps_1 = require("./sortGitLabJobDefProps");
|
|
17
18
|
const writeFiles_1 = require("../../utils/writeFiles");
|
|
18
19
|
const CATLADDER_GENERATED_FOLDER = ".catladder-generated";
|
|
@@ -123,20 +124,9 @@ class GitlabBackend {
|
|
|
123
124
|
.filter(({ trigger }) => trigger === "mainBranch")
|
|
124
125
|
.flatMap(({ jobs }) => jobs)
|
|
125
126
|
.filter(({ gitlabJob }) => !isManualGitlabJob(gitlabJob));
|
|
126
|
-
//
|
|
127
|
-
//
|
|
128
|
-
|
|
129
|
-
// SINKS of the auto-job graph (test/lint/audit and the deploy or
|
|
130
|
-
// verify tips) — everything upstream is implied. This keeps the
|
|
131
|
-
// executor's needs list far below gitlab's 50-entry cap even on
|
|
132
|
-
// pipelines with many components.
|
|
133
|
-
const neededByAnAutoJob = new Set(mainBranchAutoJobs.flatMap(({ gitlabJob }) => {
|
|
134
|
-
var _a;
|
|
135
|
-
return ((_a = gitlabJob.needs) !== null && _a !== void 0 ? _a : []).map((need) => typeof need === "string" ? need : need.job);
|
|
136
|
-
}));
|
|
137
|
-
const mainBranchJobNames = [
|
|
138
|
-
...new Set(mainBranchAutoJobs.map(({ name }) => name)),
|
|
139
|
-
].filter((name) => !neededByAnAutoJob.has(name));
|
|
127
|
+
// only the sinks of the auto-job graph — every other auto job is
|
|
128
|
+
// awaited transitively through them (see releaseGateJobs.ts)
|
|
129
|
+
const mainBranchJobNames = (0, releaseGateJobs_1.getReleaseGateJobNames)(mainBranchAutoJobs);
|
|
140
130
|
const releaseJobs = (0, gitlabReleaseJobs_1.getGitlabReleaseJobs)(config, images, mainBranchJobNames);
|
|
141
131
|
const allWorkspaceJobs = allJobsPerTrigger
|
|
142
132
|
.filter((j) => { var _a; return ((_a = j.context) === null || _a === void 0 ? void 0 : _a.type) === "workspace"; }) // sort by componentName in the same order as they appear in the config
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitlabBackend.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/gitlab/GitlabBackend.ts"],"names":[],"mappings":";;;AAAA,0CAA2C;AAC3C,uCAKqB;AAUrB,+CAA2D;AAC3D,gEAA6D;AAC7D,oEAAiE;AACjE,2DAAkE;AAClE,2CAAiD;AAEjD,oCAA8C;AAE9C,yDAAsD;AACtD,iEAA0E;AAC1E,2DAA2D;AAC3D,2DAAwD;AACxD,mEAAgE;AAChE,uDAA+D;AAE/D,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AAE1D,MAAM,uBAAuB,GAAG,0BAA0B,GAAG,SAAS,CAAC;AAEvE,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAE1C,MAAa,aAAa;IAA1B;QACW,SAAI,GAAG,QAAiB,CAAC;QAEzB,oBAAe,GAAG,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"GitlabBackend.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/gitlab/GitlabBackend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { GitlabJobDef } from "../../types";
|
|
2
|
+
/**
|
|
3
|
+
* the jobs the queued-release executor must `needs:` so that it runs
|
|
4
|
+
* exactly when the whole main-branch pipeline succeeded.
|
|
5
|
+
*
|
|
6
|
+
* `needs:` is transitive: a job that another automatic job needs is
|
|
7
|
+
* already awaited through that job, and a failed ancestor skips its
|
|
8
|
+
* descendants (and with them the executor) either way. The executor
|
|
9
|
+
* therefore only needs the SINKS of the auto-job graph — the jobs no
|
|
10
|
+
* other automatic job depends on (deploy/verify tips, terminal
|
|
11
|
+
* test/lint/audit). This keeps the needs list far below gitlab's
|
|
12
|
+
* 50-entry cap even on pipelines with many components.
|
|
13
|
+
*
|
|
14
|
+
* INVARIANT (do not weaken): every automatic job is an ancestor of the
|
|
15
|
+
* returned set. This holds for ANY graph shape, because the sinks are
|
|
16
|
+
* recomputed from the actual needs edges on every generation — if e.g.
|
|
17
|
+
* deploys ever stop needing the test jobs, the test jobs become sinks
|
|
18
|
+
* and re-enter the executor's needs by themselves. Only needs FROM
|
|
19
|
+
* automatic jobs count: a job consumed solely by manual jobs is a sink
|
|
20
|
+
* too, and keeps gating the release directly.
|
|
21
|
+
*/
|
|
22
|
+
export declare const getReleaseGateJobNames: (autoJobs: Array<{
|
|
23
|
+
name: string;
|
|
24
|
+
gitlabJob: Pick<GitlabJobDef, "needs">;
|
|
25
|
+
}>) => string[];
|