@catladder/cli 0.0.0-next-12d216ae → 0.0.0-next-e9e5af68

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.
@@ -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
- const jobs = {};
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
- } else if (isManualTaskJob(job)) {
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.assign(manualJobs, releaseJobs.manual);
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: Object.keys(manualJobs)
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: `\${{ inputs.job == '${id}' }}`
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-12d216ae" || 0;
5677
+ exports.PIPELINE_IMAGE_TAG = "next-e9e5af68" || 0;
5592
5678
  exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
5593
5679
 
5594
5680
  /***/ }),
@@ -6595,7 +6681,6 @@ exports.RUNNER_IMAGE_BUILD_CONTEXT = {
6595
6681
  "jobs-testing-chrome": "root",
6596
6682
  kubernetes: "self",
6597
6683
  "docker-build": "self",
6598
- gcloud: "self",
6599
6684
  "semantic-release": "self",
6600
6685
  changesets: "self",
6601
6686
  "agent-claude": "self"
@@ -7365,8 +7450,18 @@ exports.getCommonDeployArgs = getCommonDeployArgs;
7365
7450
  Object.defineProperty(exports, "__esModule", ({
7366
7451
  value: true
7367
7452
  }));
7368
- exports.ENV_VARS_FILENAME = void 0;
7453
+ exports.CLOUD_SDK_IMAGE = exports.ENV_VARS_FILENAME = void 0;
7369
7454
  exports.ENV_VARS_FILENAME = "____envvars.yaml";
7455
+ /**
7456
+ * the official google cloud sdk image used by cloud run deploy/stop jobs.
7457
+ * Referenced directly (not a repo-built catladder image) because our
7458
+ * former `gcloud` image was just `FROM google/cloud-sdk:latest` and added
7459
+ * nothing — so there is no reason to ship/build it. Pinned to match the
7460
+ * gcloud SDK version baked into the `docker-build` image
7461
+ * (runner-images/docker-build/Dockerfile: GCLOUD_SDK_VERSION); bump both
7462
+ * together.
7463
+ */
7464
+ exports.CLOUD_SDK_IMAGE = "google/cloud-sdk:525.0.0";
7370
7465
 
7371
7466
  /***/ }),
7372
7467
 
@@ -7732,7 +7827,6 @@ Object.defineProperty(exports, "__esModule", ({
7732
7827
  value: true
7733
7828
  }));
7734
7829
  exports.createGoogleCloudRunDeployJobs = void 0;
7735
- const runner_1 = __nccwpck_require__(92348);
7736
7830
  const gitlab_1 = __nccwpck_require__(13468);
7737
7831
  const base_1 = __nccwpck_require__(78563);
7738
7832
  const types_1 = __nccwpck_require__(12383);
@@ -7760,11 +7854,11 @@ const createGoogleCloudRunDeployJobs = context => {
7760
7854
  when: "always"
7761
7855
  }
7762
7856
  } : {}),
7763
- image: (0, runner_1.getRunnerImage)("gcloud"),
7857
+ image: constants_1.CLOUD_SDK_IMAGE,
7764
7858
  script: deployScripts
7765
7859
  },
7766
7860
  stop: {
7767
- image: (0, runner_1.getRunnerImage)("gcloud"),
7861
+ image: constants_1.CLOUD_SDK_IMAGE,
7768
7862
  variables: {
7769
7863
  CLOUDSDK_CORE_DISABLE_PROMPTS: "1"
7770
7864
  },
@@ -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
- const jobs = {};
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
- } else if (isManualTaskJob(job)) {
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.assign(manualJobs, releaseJobs.manual);
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: Object.keys(manualJobs)
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: `\${{ inputs.job == '${id}' }}`
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-12d216ae" || 0;
11725
+ exports.PIPELINE_IMAGE_TAG = "next-e9e5af68" || 0;
11640
11726
  exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
11641
11727
 
11642
11728
  /***/ }),
@@ -12643,7 +12729,6 @@ exports.RUNNER_IMAGE_BUILD_CONTEXT = {
12643
12729
  "jobs-testing-chrome": "root",
12644
12730
  kubernetes: "self",
12645
12731
  "docker-build": "self",
12646
- gcloud: "self",
12647
12732
  "semantic-release": "self",
12648
12733
  changesets: "self",
12649
12734
  "agent-claude": "self"
@@ -13413,8 +13498,18 @@ exports.getCommonDeployArgs = getCommonDeployArgs;
13413
13498
  Object.defineProperty(exports, "__esModule", ({
13414
13499
  value: true
13415
13500
  }));
13416
- exports.ENV_VARS_FILENAME = void 0;
13501
+ exports.CLOUD_SDK_IMAGE = exports.ENV_VARS_FILENAME = void 0;
13417
13502
  exports.ENV_VARS_FILENAME = "____envvars.yaml";
13503
+ /**
13504
+ * the official google cloud sdk image used by cloud run deploy/stop jobs.
13505
+ * Referenced directly (not a repo-built catladder image) because our
13506
+ * former `gcloud` image was just `FROM google/cloud-sdk:latest` and added
13507
+ * nothing — so there is no reason to ship/build it. Pinned to match the
13508
+ * gcloud SDK version baked into the `docker-build` image
13509
+ * (runner-images/docker-build/Dockerfile: GCLOUD_SDK_VERSION); bump both
13510
+ * together.
13511
+ */
13512
+ exports.CLOUD_SDK_IMAGE = "google/cloud-sdk:525.0.0";
13418
13513
 
13419
13514
  /***/ }),
13420
13515
 
@@ -13780,7 +13875,6 @@ Object.defineProperty(exports, "__esModule", ({
13780
13875
  value: true
13781
13876
  }));
13782
13877
  exports.createGoogleCloudRunDeployJobs = void 0;
13783
- const runner_1 = __nccwpck_require__(92348);
13784
13878
  const gitlab_1 = __nccwpck_require__(13468);
13785
13879
  const base_1 = __nccwpck_require__(78563);
13786
13880
  const types_1 = __nccwpck_require__(12383);
@@ -13808,11 +13902,11 @@ const createGoogleCloudRunDeployJobs = context => {
13808
13902
  when: "always"
13809
13903
  }
13810
13904
  } : {}),
13811
- image: (0, runner_1.getRunnerImage)("gcloud"),
13905
+ image: constants_1.CLOUD_SDK_IMAGE,
13812
13906
  script: deployScripts
13813
13907
  },
13814
13908
  stop: {
13815
- image: (0, runner_1.getRunnerImage)("gcloud"),
13909
+ image: constants_1.CLOUD_SDK_IMAGE,
13816
13910
  variables: {
13817
13911
  CLOUDSDK_CORE_DISABLE_PROMPTS: "1"
13818
13912
  },
@@ -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
- const jobs = {};
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
- } else if (isManualTaskJob(job)) {
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.assign(manualJobs, releaseJobs.manual);
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: Object.keys(manualJobs)
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: `\${{ inputs.job == '${id}' }}`
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":"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"}
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-12d216ae" || "latest";
7
+ exports.PIPELINE_IMAGE_TAG = "next-e9e5af68" || "latest";
8
8
  exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || "git.panter.ch:5001/catladder/catladder";
@@ -36,7 +36,6 @@ exports.RUNNER_IMAGE_BUILD_CONTEXT = {
36
36
  "jobs-testing-chrome": "root",
37
37
  kubernetes: "self",
38
38
  "docker-build": "self",
39
- gcloud: "self",
40
39
  "semantic-release": "self",
41
40
  changesets: "self",
42
41
  "agent-claude": "self"
@@ -1 +1 @@
1
- {"version":3,"file":"shippedImages.js","sourceRoot":"","sources":["../../../../../pipeline/src/customImages/shippedImages.ts"],"names":[],"mappings":";;;AAAA,2BAAgC;AAChC,+BAA4B;AAG5B;;;;GAIG;AACU,QAAA,yBAAyB,GAElC;IACF,aAAa,EAAE,CAAC,cAAc,CAAC;IAC/B,qBAAqB,EAAE,CAAC,cAAc,CAAC;CACxC,CAAC;AAEF;;;;;GAKG;AACH;;;;;;;GAOG;AACU,QAAA,mBAAmB,GAAiC,IAAI,GAAG,EAAE,CAAC;AAE9D,QAAA,0BAA0B,GAGnC;IACF,cAAc,EAAE,MAAM;IACtB,aAAa,EAAE,MAAM;IACrB,qBAAqB,EAAE,MAAM;IAC7B,UAAU,EAAE,MAAM;IAClB,cAAc,EAAE,MAAM;IACtB,MAAM,EAAE,MAAM;IACd,kBAAkB,EAAE,MAAM;IAC1B,UAAU,EAAE,MAAM;IAClB,cAAc,EAAE,MAAM;CACvB,CAAC;AAEF;;;;GAIG;AACI,MAAM,mBAAmB,GAAG,GAAW,EAAE;IAC9C,MAAM,UAAU,GAAG;QACjB,kEAAkE;QAClE,qEAAqE;QACrE,wEAAwE;QACxE,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,eAAe,CAAC;QACtC,gEAAgE;QAChE,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC;KACnD,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,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAdW,QAAA,mBAAmB,uBAc9B;AAEK,MAAM,kBAAkB,GAAG,CAAC,IAAqB,EAAU,EAAE,CAClE,IAAA,WAAI,EAAC,IAAA,2BAAmB,GAAE,EAAE,IAAI,CAAC,CAAC;AADvB,QAAA,kBAAkB,sBACK"}
1
+ {"version":3,"file":"shippedImages.js","sourceRoot":"","sources":["../../../../../pipeline/src/customImages/shippedImages.ts"],"names":[],"mappings":";;;AAAA,2BAAgC;AAChC,+BAA4B;AAG5B;;;;GAIG;AACU,QAAA,yBAAyB,GAElC;IACF,aAAa,EAAE,CAAC,cAAc,CAAC;IAC/B,qBAAqB,EAAE,CAAC,cAAc,CAAC;CACxC,CAAC;AAEF;;;;;GAKG;AACH;;;;;;;GAOG;AACU,QAAA,mBAAmB,GAAiC,IAAI,GAAG,EAAE,CAAC;AAE9D,QAAA,0BAA0B,GAGnC;IACF,cAAc,EAAE,MAAM;IACtB,aAAa,EAAE,MAAM;IACrB,qBAAqB,EAAE,MAAM;IAC7B,UAAU,EAAE,MAAM;IAClB,cAAc,EAAE,MAAM;IACtB,kBAAkB,EAAE,MAAM;IAC1B,UAAU,EAAE,MAAM;IAClB,cAAc,EAAE,MAAM;CACvB,CAAC;AAEF;;;;GAIG;AACI,MAAM,mBAAmB,GAAG,GAAW,EAAE;IAC9C,MAAM,UAAU,GAAG;QACjB,kEAAkE;QAClE,qEAAqE;QACrE,wEAAwE;QACxE,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,eAAe,CAAC;QACtC,gEAAgE;QAChE,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC;KACnD,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,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAdW,QAAA,mBAAmB,uBAc9B;AAEK,MAAM,kBAAkB,GAAG,CAAC,IAAqB,EAAU,EAAE,CAClE,IAAA,WAAI,EAAC,IAAA,2BAAmB,GAAE,EAAE,IAAI,CAAC,CAAC;AADvB,QAAA,kBAAkB,sBACK"}
@@ -1 +1,11 @@
1
- export declare const ENV_VARS_FILENAME = "____envvars.yaml";
1
+ export declare const ENV_VARS_FILENAME = "____envvars.yaml";
2
+ /**
3
+ * the official google cloud sdk image used by cloud run deploy/stop jobs.
4
+ * Referenced directly (not a repo-built catladder image) because our
5
+ * former `gcloud` image was just `FROM google/cloud-sdk:latest` and added
6
+ * nothing — so there is no reason to ship/build it. Pinned to match the
7
+ * gcloud SDK version baked into the `docker-build` image
8
+ * (runner-images/docker-build/Dockerfile: GCLOUD_SDK_VERSION); bump both
9
+ * together.
10
+ */
11
+ export declare const CLOUD_SDK_IMAGE = "google/cloud-sdk:525.0.0";
@@ -3,5 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.ENV_VARS_FILENAME = void 0;
7
- exports.ENV_VARS_FILENAME = "____envvars.yaml";
6
+ exports.CLOUD_SDK_IMAGE = exports.ENV_VARS_FILENAME = void 0;
7
+ exports.ENV_VARS_FILENAME = "____envvars.yaml";
8
+ /**
9
+ * the official google cloud sdk image used by cloud run deploy/stop jobs.
10
+ * Referenced directly (not a repo-built catladder image) because our
11
+ * former `gcloud` image was just `FROM google/cloud-sdk:latest` and added
12
+ * nothing — so there is no reason to ship/build it. Pinned to match the
13
+ * gcloud SDK version baked into the `docker-build` image
14
+ * (runner-images/docker-build/Dockerfile: GCLOUD_SDK_VERSION); bump both
15
+ * together.
16
+ */
17
+ exports.CLOUD_SDK_IMAGE = "google/cloud-sdk:525.0.0";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../../pipeline/src/deploy/cloudRun/createJobs/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,kBAAkB,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../../pipeline/src/deploy/cloudRun/createJobs/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,kBAAkB,CAAC;AAEpD;;;;;;;;GAQG;AACU,QAAA,eAAe,GAAG,0BAA0B,CAAC"}