@catladder/cli 0.0.0-next-12d216ae → 0.0.0-next-be5eda7e
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 +93 -7
- package/dist/bundles/cli/index.js +93 -7
- package/dist/pipeline/src/backends/github/GithubBackend.js +92 -6
- package/dist/pipeline/src/backends/github/GithubBackend.js.map +1 -1
- package/dist/pipeline/src/constants.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1847,6 +1847,7 @@ class GithubBackend {
|
|
|
1847
1847
|
* all workflows keyed by file name, mainly for testing purposes
|
|
1848
1848
|
*/
|
|
1849
1849
|
async createWorkflows(config, images = this.createImagesPlan(config), scripts = new scriptFiles_1.GithubScriptFiles()) {
|
|
1850
|
+
var _a, _b, _c, _d;
|
|
1850
1851
|
const workflows = {};
|
|
1851
1852
|
// per-pipeline-type variables (pipelines.github.runnerVariables);
|
|
1852
1853
|
// workflow-level env, so job-level runnerVariables take precedence
|
|
@@ -1855,7 +1856,15 @@ class GithubBackend {
|
|
|
1855
1856
|
...(0, index_1.getPipelineOptions)(config, this.type).runnerVariables
|
|
1856
1857
|
};
|
|
1857
1858
|
const reviewStopJobs = {};
|
|
1859
|
+
// jobs routed to the workflow_dispatch "manual tasks" workflow. A
|
|
1860
|
+
// manual job and its build closure live here instead of an automatic
|
|
1861
|
+
// workflow; `manualJobConditions` is the `if` that selects each one
|
|
1862
|
+
// from the dispatch input, `manualDispatchOptions` the leaf jobs that
|
|
1863
|
+
// become dropdown choices (closure jobs run because their leaf was
|
|
1864
|
+
// chosen, not on their own).
|
|
1858
1865
|
const manualJobs = {};
|
|
1866
|
+
const manualJobConditions = {};
|
|
1867
|
+
const manualDispatchOptions = [];
|
|
1859
1868
|
for (const trigger of config_1.ALL_PIPELINE_TRIGGERS) {
|
|
1860
1869
|
const allJobs = await (0, createAllJobs_1.createAllJobs)({
|
|
1861
1870
|
config,
|
|
@@ -1864,25 +1873,102 @@ class GithubBackend {
|
|
|
1864
1873
|
});
|
|
1865
1874
|
const uploadProviderIds = (0, createGithubJobs_1.getUploadProviderIds)(allJobs);
|
|
1866
1875
|
const secretKinds = (0, createGithubJobs_1.collectSecretKinds)(allJobs);
|
|
1867
|
-
|
|
1876
|
+
// build every job of the trigger up front: partitioning the manual
|
|
1877
|
+
// jobs needs the whole dependency graph.
|
|
1868
1878
|
// NOTE: agent jobs are gitlab-only and skipped on github
|
|
1879
|
+
const triggerJobs = new Map();
|
|
1869
1880
|
[...allJobs.workspaces, ...allJobs.components].forEach(({
|
|
1870
1881
|
context,
|
|
1871
1882
|
jobs: contextJobs
|
|
1872
1883
|
}) => contextJobs.forEach(job => {
|
|
1873
1884
|
const [id, githubJob] = (0, createGithubJobs_1.makeGithubJob)(context, job, allJobs, uploadProviderIds, images, scripts, secretKinds);
|
|
1885
|
+
triggerJobs.set(id, {
|
|
1886
|
+
githubJob,
|
|
1887
|
+
job,
|
|
1888
|
+
context
|
|
1889
|
+
});
|
|
1890
|
+
}));
|
|
1891
|
+
// review-stop jobs run in their own on:pull_request:closed workflow
|
|
1892
|
+
for (const [id, {
|
|
1893
|
+
githubJob,
|
|
1894
|
+
job,
|
|
1895
|
+
context
|
|
1896
|
+
}] of [...triggerJobs]) {
|
|
1874
1897
|
if (isReviewStopJob(context, job)) {
|
|
1875
1898
|
reviewStopJobs[id] = githubJob;
|
|
1876
|
-
|
|
1899
|
+
triggerJobs.delete(id);
|
|
1900
|
+
}
|
|
1901
|
+
}
|
|
1902
|
+
// leaf manual jobs: an explicit manual gate (e.g. a prod deploy) or
|
|
1903
|
+
// a stop/rollback task with no automatic trigger. Each becomes a
|
|
1904
|
+
// dispatch choice.
|
|
1905
|
+
const leafIds = [...triggerJobs].filter(([, {
|
|
1906
|
+
job
|
|
1907
|
+
}]) => job.gate === "manual" || isManualTaskJob(job)).map(([id]) => id);
|
|
1908
|
+
// A manual leaf drags its whole connected region into the manual
|
|
1909
|
+
// workflow, in both directions, so that a dispatch runs the complete
|
|
1910
|
+
// flow and nothing is left dangling in the automatic workflow:
|
|
1911
|
+
// - upstream (jobs the leaf needs): github artifacts are scoped to
|
|
1912
|
+
// a single run, so a dispatched job can't reuse the automatic
|
|
1913
|
+
// run's build — it has to rebuild, so the build moves too.
|
|
1914
|
+
// - downstream (jobs that need the leaf, e.g. a post-deploy verify):
|
|
1915
|
+
// they can't run automatically once their prerequisite is manual.
|
|
1916
|
+
// Needs pointing outside the trigger (the global image-build jobs)
|
|
1917
|
+
// exist in every workflow and are left alone. Because catladder's
|
|
1918
|
+
// deploy/verify jobs are per env, a leaf's region stays within its
|
|
1919
|
+
// env and never swallows another env's automatic chain.
|
|
1920
|
+
// servesLeaves maps every moved job to the leaves that own it.
|
|
1921
|
+
const dependents = new Map();
|
|
1922
|
+
for (const [id, {
|
|
1923
|
+
githubJob
|
|
1924
|
+
}] of triggerJobs) {
|
|
1925
|
+
for (const need of (_a = githubJob.needs) !== null && _a !== void 0 ? _a : []) {
|
|
1926
|
+
if (!triggerJobs.has(need)) continue;
|
|
1927
|
+
const list = dependents.get(need);
|
|
1928
|
+
if (list) list.push(id);else dependents.set(need, [id]);
|
|
1929
|
+
}
|
|
1930
|
+
}
|
|
1931
|
+
const servesLeaves = new Map();
|
|
1932
|
+
for (const leaf of leafIds) {
|
|
1933
|
+
const stack = [leaf];
|
|
1934
|
+
let cur;
|
|
1935
|
+
while ((cur = stack.pop()) !== undefined) {
|
|
1936
|
+
let leaves = servesLeaves.get(cur);
|
|
1937
|
+
if (leaves === null || leaves === void 0 ? void 0 : leaves.has(leaf)) continue; // already walked for this leaf
|
|
1938
|
+
if (!leaves) {
|
|
1939
|
+
leaves = new Set();
|
|
1940
|
+
servesLeaves.set(cur, leaves);
|
|
1941
|
+
}
|
|
1942
|
+
leaves.add(leaf);
|
|
1943
|
+
for (const need of (_c = (_b = triggerJobs.get(cur)) === null || _b === void 0 ? void 0 : _b.githubJob.needs) !== null && _c !== void 0 ? _c : []) {
|
|
1944
|
+
if (triggerJobs.has(need)) stack.push(need); // upstream deps
|
|
1945
|
+
}
|
|
1946
|
+
for (const dependent of (_d = dependents.get(cur)) !== null && _d !== void 0 ? _d : []) {
|
|
1947
|
+
stack.push(dependent); // downstream consumers
|
|
1948
|
+
}
|
|
1949
|
+
}
|
|
1950
|
+
}
|
|
1951
|
+
const jobs = {};
|
|
1952
|
+
for (const [id, {
|
|
1953
|
+
githubJob
|
|
1954
|
+
}] of triggerJobs) {
|
|
1955
|
+
const leaves = servesLeaves.get(id);
|
|
1956
|
+
if (leaves) {
|
|
1877
1957
|
manualJobs[id] = githubJob;
|
|
1958
|
+
manualJobConditions[id] = [...leaves].sort().map(leaf => `inputs.job == '${leaf}'`).join(" || ");
|
|
1878
1959
|
} else {
|
|
1879
1960
|
jobs[id] = githubJob;
|
|
1880
1961
|
}
|
|
1881
|
-
}
|
|
1962
|
+
}
|
|
1963
|
+
manualDispatchOptions.push(...leafIds);
|
|
1882
1964
|
if (trigger === "mainBranch") {
|
|
1883
1965
|
const releaseJobs = (0, githubReleaseJobs_1.getGithubReleaseJobs)(config, Object.keys(jobs), images);
|
|
1884
1966
|
Object.assign(jobs, releaseJobs.main);
|
|
1885
|
-
Object.
|
|
1967
|
+
for (const [id, job] of Object.entries(releaseJobs.manual)) {
|
|
1968
|
+
manualJobs[id] = job;
|
|
1969
|
+
manualJobConditions[id] = `inputs.job == '${id}'`;
|
|
1970
|
+
manualDispatchOptions.push(id);
|
|
1971
|
+
}
|
|
1886
1972
|
}
|
|
1887
1973
|
if (Object.keys(jobs).length > 0) {
|
|
1888
1974
|
workflows[`${GENERATED_FILE_PREFIX}${workflowFileName(trigger)}`] = {
|
|
@@ -1922,7 +2008,7 @@ class GithubBackend {
|
|
|
1922
2008
|
description: "the task to run",
|
|
1923
2009
|
required: true,
|
|
1924
2010
|
type: "choice",
|
|
1925
|
-
options:
|
|
2011
|
+
options: [...new Set(manualDispatchOptions)]
|
|
1926
2012
|
}
|
|
1927
2013
|
}
|
|
1928
2014
|
}
|
|
@@ -1933,7 +2019,7 @@ class GithubBackend {
|
|
|
1933
2019
|
...makeEnsureImageGithubJobs(images),
|
|
1934
2020
|
...Object.fromEntries(Object.entries(manualJobs).map(([id, job]) => [id, {
|
|
1935
2021
|
...job,
|
|
1936
|
-
if: `\${{
|
|
2022
|
+
if: `\${{ ${manualJobConditions[id]} }}`
|
|
1937
2023
|
}]))
|
|
1938
2024
|
}
|
|
1939
2025
|
};
|
|
@@ -5588,7 +5674,7 @@ Object.defineProperty(exports, "__esModule", ({
|
|
|
5588
5674
|
value: true
|
|
5589
5675
|
}));
|
|
5590
5676
|
exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
|
|
5591
|
-
exports.PIPELINE_IMAGE_TAG = "next-
|
|
5677
|
+
exports.PIPELINE_IMAGE_TAG = "next-be5eda7e" || 0;
|
|
5592
5678
|
exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
|
|
5593
5679
|
|
|
5594
5680
|
/***/ }),
|
|
@@ -7895,6 +7895,7 @@ class GithubBackend {
|
|
|
7895
7895
|
* all workflows keyed by file name, mainly for testing purposes
|
|
7896
7896
|
*/
|
|
7897
7897
|
async createWorkflows(config, images = this.createImagesPlan(config), scripts = new scriptFiles_1.GithubScriptFiles()) {
|
|
7898
|
+
var _a, _b, _c, _d;
|
|
7898
7899
|
const workflows = {};
|
|
7899
7900
|
// per-pipeline-type variables (pipelines.github.runnerVariables);
|
|
7900
7901
|
// workflow-level env, so job-level runnerVariables take precedence
|
|
@@ -7903,7 +7904,15 @@ class GithubBackend {
|
|
|
7903
7904
|
...(0, index_1.getPipelineOptions)(config, this.type).runnerVariables
|
|
7904
7905
|
};
|
|
7905
7906
|
const reviewStopJobs = {};
|
|
7907
|
+
// jobs routed to the workflow_dispatch "manual tasks" workflow. A
|
|
7908
|
+
// manual job and its build closure live here instead of an automatic
|
|
7909
|
+
// workflow; `manualJobConditions` is the `if` that selects each one
|
|
7910
|
+
// from the dispatch input, `manualDispatchOptions` the leaf jobs that
|
|
7911
|
+
// become dropdown choices (closure jobs run because their leaf was
|
|
7912
|
+
// chosen, not on their own).
|
|
7906
7913
|
const manualJobs = {};
|
|
7914
|
+
const manualJobConditions = {};
|
|
7915
|
+
const manualDispatchOptions = [];
|
|
7907
7916
|
for (const trigger of config_1.ALL_PIPELINE_TRIGGERS) {
|
|
7908
7917
|
const allJobs = await (0, createAllJobs_1.createAllJobs)({
|
|
7909
7918
|
config,
|
|
@@ -7912,25 +7921,102 @@ class GithubBackend {
|
|
|
7912
7921
|
});
|
|
7913
7922
|
const uploadProviderIds = (0, createGithubJobs_1.getUploadProviderIds)(allJobs);
|
|
7914
7923
|
const secretKinds = (0, createGithubJobs_1.collectSecretKinds)(allJobs);
|
|
7915
|
-
|
|
7924
|
+
// build every job of the trigger up front: partitioning the manual
|
|
7925
|
+
// jobs needs the whole dependency graph.
|
|
7916
7926
|
// NOTE: agent jobs are gitlab-only and skipped on github
|
|
7927
|
+
const triggerJobs = new Map();
|
|
7917
7928
|
[...allJobs.workspaces, ...allJobs.components].forEach(({
|
|
7918
7929
|
context,
|
|
7919
7930
|
jobs: contextJobs
|
|
7920
7931
|
}) => contextJobs.forEach(job => {
|
|
7921
7932
|
const [id, githubJob] = (0, createGithubJobs_1.makeGithubJob)(context, job, allJobs, uploadProviderIds, images, scripts, secretKinds);
|
|
7933
|
+
triggerJobs.set(id, {
|
|
7934
|
+
githubJob,
|
|
7935
|
+
job,
|
|
7936
|
+
context
|
|
7937
|
+
});
|
|
7938
|
+
}));
|
|
7939
|
+
// review-stop jobs run in their own on:pull_request:closed workflow
|
|
7940
|
+
for (const [id, {
|
|
7941
|
+
githubJob,
|
|
7942
|
+
job,
|
|
7943
|
+
context
|
|
7944
|
+
}] of [...triggerJobs]) {
|
|
7922
7945
|
if (isReviewStopJob(context, job)) {
|
|
7923
7946
|
reviewStopJobs[id] = githubJob;
|
|
7924
|
-
|
|
7947
|
+
triggerJobs.delete(id);
|
|
7948
|
+
}
|
|
7949
|
+
}
|
|
7950
|
+
// leaf manual jobs: an explicit manual gate (e.g. a prod deploy) or
|
|
7951
|
+
// a stop/rollback task with no automatic trigger. Each becomes a
|
|
7952
|
+
// dispatch choice.
|
|
7953
|
+
const leafIds = [...triggerJobs].filter(([, {
|
|
7954
|
+
job
|
|
7955
|
+
}]) => job.gate === "manual" || isManualTaskJob(job)).map(([id]) => id);
|
|
7956
|
+
// A manual leaf drags its whole connected region into the manual
|
|
7957
|
+
// workflow, in both directions, so that a dispatch runs the complete
|
|
7958
|
+
// flow and nothing is left dangling in the automatic workflow:
|
|
7959
|
+
// - upstream (jobs the leaf needs): github artifacts are scoped to
|
|
7960
|
+
// a single run, so a dispatched job can't reuse the automatic
|
|
7961
|
+
// run's build — it has to rebuild, so the build moves too.
|
|
7962
|
+
// - downstream (jobs that need the leaf, e.g. a post-deploy verify):
|
|
7963
|
+
// they can't run automatically once their prerequisite is manual.
|
|
7964
|
+
// Needs pointing outside the trigger (the global image-build jobs)
|
|
7965
|
+
// exist in every workflow and are left alone. Because catladder's
|
|
7966
|
+
// deploy/verify jobs are per env, a leaf's region stays within its
|
|
7967
|
+
// env and never swallows another env's automatic chain.
|
|
7968
|
+
// servesLeaves maps every moved job to the leaves that own it.
|
|
7969
|
+
const dependents = new Map();
|
|
7970
|
+
for (const [id, {
|
|
7971
|
+
githubJob
|
|
7972
|
+
}] of triggerJobs) {
|
|
7973
|
+
for (const need of (_a = githubJob.needs) !== null && _a !== void 0 ? _a : []) {
|
|
7974
|
+
if (!triggerJobs.has(need)) continue;
|
|
7975
|
+
const list = dependents.get(need);
|
|
7976
|
+
if (list) list.push(id);else dependents.set(need, [id]);
|
|
7977
|
+
}
|
|
7978
|
+
}
|
|
7979
|
+
const servesLeaves = new Map();
|
|
7980
|
+
for (const leaf of leafIds) {
|
|
7981
|
+
const stack = [leaf];
|
|
7982
|
+
let cur;
|
|
7983
|
+
while ((cur = stack.pop()) !== undefined) {
|
|
7984
|
+
let leaves = servesLeaves.get(cur);
|
|
7985
|
+
if (leaves === null || leaves === void 0 ? void 0 : leaves.has(leaf)) continue; // already walked for this leaf
|
|
7986
|
+
if (!leaves) {
|
|
7987
|
+
leaves = new Set();
|
|
7988
|
+
servesLeaves.set(cur, leaves);
|
|
7989
|
+
}
|
|
7990
|
+
leaves.add(leaf);
|
|
7991
|
+
for (const need of (_c = (_b = triggerJobs.get(cur)) === null || _b === void 0 ? void 0 : _b.githubJob.needs) !== null && _c !== void 0 ? _c : []) {
|
|
7992
|
+
if (triggerJobs.has(need)) stack.push(need); // upstream deps
|
|
7993
|
+
}
|
|
7994
|
+
for (const dependent of (_d = dependents.get(cur)) !== null && _d !== void 0 ? _d : []) {
|
|
7995
|
+
stack.push(dependent); // downstream consumers
|
|
7996
|
+
}
|
|
7997
|
+
}
|
|
7998
|
+
}
|
|
7999
|
+
const jobs = {};
|
|
8000
|
+
for (const [id, {
|
|
8001
|
+
githubJob
|
|
8002
|
+
}] of triggerJobs) {
|
|
8003
|
+
const leaves = servesLeaves.get(id);
|
|
8004
|
+
if (leaves) {
|
|
7925
8005
|
manualJobs[id] = githubJob;
|
|
8006
|
+
manualJobConditions[id] = [...leaves].sort().map(leaf => `inputs.job == '${leaf}'`).join(" || ");
|
|
7926
8007
|
} else {
|
|
7927
8008
|
jobs[id] = githubJob;
|
|
7928
8009
|
}
|
|
7929
|
-
}
|
|
8010
|
+
}
|
|
8011
|
+
manualDispatchOptions.push(...leafIds);
|
|
7930
8012
|
if (trigger === "mainBranch") {
|
|
7931
8013
|
const releaseJobs = (0, githubReleaseJobs_1.getGithubReleaseJobs)(config, Object.keys(jobs), images);
|
|
7932
8014
|
Object.assign(jobs, releaseJobs.main);
|
|
7933
|
-
Object.
|
|
8015
|
+
for (const [id, job] of Object.entries(releaseJobs.manual)) {
|
|
8016
|
+
manualJobs[id] = job;
|
|
8017
|
+
manualJobConditions[id] = `inputs.job == '${id}'`;
|
|
8018
|
+
manualDispatchOptions.push(id);
|
|
8019
|
+
}
|
|
7934
8020
|
}
|
|
7935
8021
|
if (Object.keys(jobs).length > 0) {
|
|
7936
8022
|
workflows[`${GENERATED_FILE_PREFIX}${workflowFileName(trigger)}`] = {
|
|
@@ -7970,7 +8056,7 @@ class GithubBackend {
|
|
|
7970
8056
|
description: "the task to run",
|
|
7971
8057
|
required: true,
|
|
7972
8058
|
type: "choice",
|
|
7973
|
-
options:
|
|
8059
|
+
options: [...new Set(manualDispatchOptions)]
|
|
7974
8060
|
}
|
|
7975
8061
|
}
|
|
7976
8062
|
}
|
|
@@ -7981,7 +8067,7 @@ class GithubBackend {
|
|
|
7981
8067
|
...makeEnsureImageGithubJobs(images),
|
|
7982
8068
|
...Object.fromEntries(Object.entries(manualJobs).map(([id, job]) => [id, {
|
|
7983
8069
|
...job,
|
|
7984
|
-
if: `\${{
|
|
8070
|
+
if: `\${{ ${manualJobConditions[id]} }}`
|
|
7985
8071
|
}]))
|
|
7986
8072
|
}
|
|
7987
8073
|
};
|
|
@@ -11636,7 +11722,7 @@ Object.defineProperty(exports, "__esModule", ({
|
|
|
11636
11722
|
value: true
|
|
11637
11723
|
}));
|
|
11638
11724
|
exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
|
|
11639
|
-
exports.PIPELINE_IMAGE_TAG = "next-
|
|
11725
|
+
exports.PIPELINE_IMAGE_TAG = "next-be5eda7e" || 0;
|
|
11640
11726
|
exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
|
|
11641
11727
|
|
|
11642
11728
|
/***/ }),
|
|
@@ -90,6 +90,7 @@ class GithubBackend {
|
|
|
90
90
|
* all workflows keyed by file name, mainly for testing purposes
|
|
91
91
|
*/
|
|
92
92
|
async createWorkflows(config, images = this.createImagesPlan(config), scripts = new scriptFiles_1.GithubScriptFiles()) {
|
|
93
|
+
var _a, _b, _c, _d;
|
|
93
94
|
const workflows = {};
|
|
94
95
|
// per-pipeline-type variables (pipelines.github.runnerVariables);
|
|
95
96
|
// workflow-level env, so job-level runnerVariables take precedence
|
|
@@ -98,7 +99,15 @@ class GithubBackend {
|
|
|
98
99
|
...(0, index_1.getPipelineOptions)(config, this.type).runnerVariables
|
|
99
100
|
};
|
|
100
101
|
const reviewStopJobs = {};
|
|
102
|
+
// jobs routed to the workflow_dispatch "manual tasks" workflow. A
|
|
103
|
+
// manual job and its build closure live here instead of an automatic
|
|
104
|
+
// workflow; `manualJobConditions` is the `if` that selects each one
|
|
105
|
+
// from the dispatch input, `manualDispatchOptions` the leaf jobs that
|
|
106
|
+
// become dropdown choices (closure jobs run because their leaf was
|
|
107
|
+
// chosen, not on their own).
|
|
101
108
|
const manualJobs = {};
|
|
109
|
+
const manualJobConditions = {};
|
|
110
|
+
const manualDispatchOptions = [];
|
|
102
111
|
for (const trigger of config_1.ALL_PIPELINE_TRIGGERS) {
|
|
103
112
|
const allJobs = await (0, createAllJobs_1.createAllJobs)({
|
|
104
113
|
config,
|
|
@@ -107,25 +116,102 @@ class GithubBackend {
|
|
|
107
116
|
});
|
|
108
117
|
const uploadProviderIds = (0, createGithubJobs_1.getUploadProviderIds)(allJobs);
|
|
109
118
|
const secretKinds = (0, createGithubJobs_1.collectSecretKinds)(allJobs);
|
|
110
|
-
|
|
119
|
+
// build every job of the trigger up front: partitioning the manual
|
|
120
|
+
// jobs needs the whole dependency graph.
|
|
111
121
|
// NOTE: agent jobs are gitlab-only and skipped on github
|
|
122
|
+
const triggerJobs = new Map();
|
|
112
123
|
[...allJobs.workspaces, ...allJobs.components].forEach(({
|
|
113
124
|
context,
|
|
114
125
|
jobs: contextJobs
|
|
115
126
|
}) => contextJobs.forEach(job => {
|
|
116
127
|
const [id, githubJob] = (0, createGithubJobs_1.makeGithubJob)(context, job, allJobs, uploadProviderIds, images, scripts, secretKinds);
|
|
128
|
+
triggerJobs.set(id, {
|
|
129
|
+
githubJob,
|
|
130
|
+
job,
|
|
131
|
+
context
|
|
132
|
+
});
|
|
133
|
+
}));
|
|
134
|
+
// review-stop jobs run in their own on:pull_request:closed workflow
|
|
135
|
+
for (const [id, {
|
|
136
|
+
githubJob,
|
|
137
|
+
job,
|
|
138
|
+
context
|
|
139
|
+
}] of [...triggerJobs]) {
|
|
117
140
|
if (isReviewStopJob(context, job)) {
|
|
118
141
|
reviewStopJobs[id] = githubJob;
|
|
119
|
-
|
|
142
|
+
triggerJobs.delete(id);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// leaf manual jobs: an explicit manual gate (e.g. a prod deploy) or
|
|
146
|
+
// a stop/rollback task with no automatic trigger. Each becomes a
|
|
147
|
+
// dispatch choice.
|
|
148
|
+
const leafIds = [...triggerJobs].filter(([, {
|
|
149
|
+
job
|
|
150
|
+
}]) => job.gate === "manual" || isManualTaskJob(job)).map(([id]) => id);
|
|
151
|
+
// A manual leaf drags its whole connected region into the manual
|
|
152
|
+
// workflow, in both directions, so that a dispatch runs the complete
|
|
153
|
+
// flow and nothing is left dangling in the automatic workflow:
|
|
154
|
+
// - upstream (jobs the leaf needs): github artifacts are scoped to
|
|
155
|
+
// a single run, so a dispatched job can't reuse the automatic
|
|
156
|
+
// run's build — it has to rebuild, so the build moves too.
|
|
157
|
+
// - downstream (jobs that need the leaf, e.g. a post-deploy verify):
|
|
158
|
+
// they can't run automatically once their prerequisite is manual.
|
|
159
|
+
// Needs pointing outside the trigger (the global image-build jobs)
|
|
160
|
+
// exist in every workflow and are left alone. Because catladder's
|
|
161
|
+
// deploy/verify jobs are per env, a leaf's region stays within its
|
|
162
|
+
// env and never swallows another env's automatic chain.
|
|
163
|
+
// servesLeaves maps every moved job to the leaves that own it.
|
|
164
|
+
const dependents = new Map();
|
|
165
|
+
for (const [id, {
|
|
166
|
+
githubJob
|
|
167
|
+
}] of triggerJobs) {
|
|
168
|
+
for (const need of (_a = githubJob.needs) !== null && _a !== void 0 ? _a : []) {
|
|
169
|
+
if (!triggerJobs.has(need)) continue;
|
|
170
|
+
const list = dependents.get(need);
|
|
171
|
+
if (list) list.push(id);else dependents.set(need, [id]);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
const servesLeaves = new Map();
|
|
175
|
+
for (const leaf of leafIds) {
|
|
176
|
+
const stack = [leaf];
|
|
177
|
+
let cur;
|
|
178
|
+
while ((cur = stack.pop()) !== undefined) {
|
|
179
|
+
let leaves = servesLeaves.get(cur);
|
|
180
|
+
if (leaves === null || leaves === void 0 ? void 0 : leaves.has(leaf)) continue; // already walked for this leaf
|
|
181
|
+
if (!leaves) {
|
|
182
|
+
leaves = new Set();
|
|
183
|
+
servesLeaves.set(cur, leaves);
|
|
184
|
+
}
|
|
185
|
+
leaves.add(leaf);
|
|
186
|
+
for (const need of (_c = (_b = triggerJobs.get(cur)) === null || _b === void 0 ? void 0 : _b.githubJob.needs) !== null && _c !== void 0 ? _c : []) {
|
|
187
|
+
if (triggerJobs.has(need)) stack.push(need); // upstream deps
|
|
188
|
+
}
|
|
189
|
+
for (const dependent of (_d = dependents.get(cur)) !== null && _d !== void 0 ? _d : []) {
|
|
190
|
+
stack.push(dependent); // downstream consumers
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
const jobs = {};
|
|
195
|
+
for (const [id, {
|
|
196
|
+
githubJob
|
|
197
|
+
}] of triggerJobs) {
|
|
198
|
+
const leaves = servesLeaves.get(id);
|
|
199
|
+
if (leaves) {
|
|
120
200
|
manualJobs[id] = githubJob;
|
|
201
|
+
manualJobConditions[id] = [...leaves].sort().map(leaf => `inputs.job == '${leaf}'`).join(" || ");
|
|
121
202
|
} else {
|
|
122
203
|
jobs[id] = githubJob;
|
|
123
204
|
}
|
|
124
|
-
}
|
|
205
|
+
}
|
|
206
|
+
manualDispatchOptions.push(...leafIds);
|
|
125
207
|
if (trigger === "mainBranch") {
|
|
126
208
|
const releaseJobs = (0, githubReleaseJobs_1.getGithubReleaseJobs)(config, Object.keys(jobs), images);
|
|
127
209
|
Object.assign(jobs, releaseJobs.main);
|
|
128
|
-
Object.
|
|
210
|
+
for (const [id, job] of Object.entries(releaseJobs.manual)) {
|
|
211
|
+
manualJobs[id] = job;
|
|
212
|
+
manualJobConditions[id] = `inputs.job == '${id}'`;
|
|
213
|
+
manualDispatchOptions.push(id);
|
|
214
|
+
}
|
|
129
215
|
}
|
|
130
216
|
if (Object.keys(jobs).length > 0) {
|
|
131
217
|
workflows[`${GENERATED_FILE_PREFIX}${workflowFileName(trigger)}`] = {
|
|
@@ -165,7 +251,7 @@ class GithubBackend {
|
|
|
165
251
|
description: "the task to run",
|
|
166
252
|
required: true,
|
|
167
253
|
type: "choice",
|
|
168
|
-
options:
|
|
254
|
+
options: [...new Set(manualDispatchOptions)]
|
|
169
255
|
}
|
|
170
256
|
}
|
|
171
257
|
}
|
|
@@ -176,7 +262,7 @@ class GithubBackend {
|
|
|
176
262
|
...makeEnsureImageGithubJobs(images),
|
|
177
263
|
...Object.fromEntries(Object.entries(manualJobs).map(([id, job]) => [id, {
|
|
178
264
|
...job,
|
|
179
|
-
if: `\${{
|
|
265
|
+
if: `\${{ ${manualJobConditions[id]} }}`
|
|
180
266
|
}]))
|
|
181
267
|
}
|
|
182
268
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GithubBackend.js","sourceRoot":"","sources":["../../../../../../pipeline/src/backends/github/GithubBackend.ts"],"names":[],"mappings":";;;AAAA,0CAAkD;AAClD,+BAA4B;AAC5B,gEAA6D;AAE7D,+CAA2D;AAI3D,+CAA6D;AAC7D,oCAA8C;AAC9C,yDAK4B;AAC5B,oEAG0C;AAC1C,uDAAuE;AACvE,2DAAkE;AAClE,uCAAqC;AACrC,2DAA2D;AAC3D,+CAAyE;AAEzE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAE7C;;;GAGG;AACH,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAE3C,MAAM,iBAAiB,GAGnB;IACF,EAAE,EAAE;QACF,IAAI,EAAE,kBAAkB;QACxB,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,EAAE;QACtE,WAAW,EAAE;YACX,KAAK,EAAE,6CAA6C;YACpD,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,UAAU,EAAE;QACV,IAAI,EAAE,gBAAgB;QACtB,6CAA6C;QAC7C,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;KACrC;IACD,aAAa,EAAE;QACb,IAAI,EAAE,mBAAmB;QACzB,gEAAgE;QAChE,mEAAmE;QACnE,2DAA2D;QAC3D,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE;KACtD;CACF,CAAC;AAEF,MAAa,aAAa;IAA1B;QACW,SAAI,GAAG,QAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"GithubBackend.js","sourceRoot":"","sources":["../../../../../../pipeline/src/backends/github/GithubBackend.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
|
|
7
|
-
exports.PIPELINE_IMAGE_TAG = "next-
|
|
7
|
+
exports.PIPELINE_IMAGE_TAG = "next-be5eda7e" || "latest";
|
|
8
8
|
exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || "git.panter.ch:5001/catladder/catladder";
|