@catladder/cli 5.5.0 → 5.7.0

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.
Files changed (109) hide show
  1. package/dist/apps/cli/src/catci.js +22 -0
  2. package/dist/apps/cli/src/catci.js.map +1 -1
  3. package/dist/apps/cli/src/commands/index.d.ts +1 -0
  4. package/dist/apps/cli/src/commands/index.js +4 -1
  5. package/dist/apps/cli/src/commands/index.js.map +1 -1
  6. package/dist/apps/cli/src/commands/project/commandMrPin.d.ts +9 -0
  7. package/dist/apps/cli/src/commands/project/commandMrPin.js +11 -13
  8. package/dist/apps/cli/src/commands/project/commandMrPin.js.map +1 -1
  9. package/dist/apps/cli/src/commands/project/commandMrReviewApp.d.ts +21 -0
  10. package/dist/apps/cli/src/commands/project/commandMrReviewApp.js +102 -0
  11. package/dist/apps/cli/src/commands/project/commandMrReviewApp.js.map +1 -0
  12. package/dist/apps/cli/src/reviewApps/github.d.ts +10 -0
  13. package/dist/apps/cli/src/reviewApps/github.js +196 -0
  14. package/dist/apps/cli/src/reviewApps/github.js.map +1 -0
  15. package/dist/bundles/catci/index.js +4 -4
  16. package/dist/bundles/catenv/index.js +1261 -70
  17. package/dist/bundles/catenv/xdg-open +0 -0
  18. package/dist/bundles/cli/clipboard_i686.exe +0 -0
  19. package/dist/bundles/cli/clipboard_x86_64.exe +0 -0
  20. package/dist/bundles/cli/index.js +1387 -86
  21. package/dist/bundles/cli/xdg-open +0 -0
  22. package/dist/bundles/cli/xsel +0 -0
  23. package/dist/bundles/runner-images/changesets/scripts/changesetsRelease +0 -0
  24. package/dist/bundles/runner-images/kubernetes/scripts/kubernetesCreateSecret +0 -0
  25. package/dist/bundles/runner-images/kubernetes/scripts/kubernetesDelete +0 -0
  26. package/dist/bundles/runner-images/kubernetes/scripts/kubernetesDeploy +0 -0
  27. package/dist/bundles/runner-images/kubernetes/scripts/kubernetesRollback +0 -0
  28. package/dist/bundles/skills/catladder-builds/SKILL.md +50 -2
  29. package/dist/bundles/skills/catladder-builds/references/build-types.md +10 -2
  30. package/dist/bundles/skills/catladder-cli/references/commands.md +13 -0
  31. package/dist/bundles/skills/catladder-config/SKILL.md +4 -0
  32. package/dist/bundles/skills/catladder-deploys/SKILL.md +6 -0
  33. package/dist/bundles/skills/catladder-pipelines/SKILL.md +97 -3
  34. package/dist/packages/pipeline/src/backends/github/GithubBackend.js +60 -3
  35. package/dist/packages/pipeline/src/backends/github/GithubBackend.js.map +1 -1
  36. package/dist/packages/pipeline/src/backends/github/aggregateCheckJob.d.ts +1 -1
  37. package/dist/packages/pipeline/src/backends/github/aggregateCheckJob.js +22 -8
  38. package/dist/packages/pipeline/src/backends/github/aggregateCheckJob.js.map +1 -1
  39. package/dist/packages/pipeline/src/backends/github/artifactArchive.d.ts +22 -0
  40. package/dist/packages/pipeline/src/backends/github/artifactArchive.js +84 -0
  41. package/dist/packages/pipeline/src/backends/github/artifactArchive.js.map +1 -0
  42. package/dist/packages/pipeline/src/backends/github/createGithubJobs.js +12 -29
  43. package/dist/packages/pipeline/src/backends/github/createGithubJobs.js.map +1 -1
  44. package/dist/packages/pipeline/src/backends/github/reviewDeployWorkflow.d.ts +128 -0
  45. package/dist/packages/pipeline/src/backends/github/reviewDeployWorkflow.js +510 -0
  46. package/dist/packages/pipeline/src/backends/github/reviewDeployWorkflow.js.map +1 -0
  47. package/dist/packages/pipeline/src/backends/gitlab/GitlabBackend.js +32 -5
  48. package/dist/packages/pipeline/src/backends/gitlab/GitlabBackend.js.map +1 -1
  49. package/dist/packages/pipeline/src/backends/gitlab/createGitlabPipeline.d.ts +11 -1
  50. package/dist/packages/pipeline/src/backends/gitlab/createGitlabPipeline.js +17 -5
  51. package/dist/packages/pipeline/src/backends/gitlab/createGitlabPipeline.js.map +1 -1
  52. package/dist/packages/pipeline/src/backends/gitlab/getPipelineStages.d.ts +4 -1
  53. package/dist/packages/pipeline/src/backends/gitlab/getPipelineStages.js +11 -2
  54. package/dist/packages/pipeline/src/backends/gitlab/getPipelineStages.js.map +1 -1
  55. package/dist/packages/pipeline/src/backends/gitlab/reviewDeployGate.d.ts +26 -0
  56. package/dist/packages/pipeline/src/backends/gitlab/reviewDeployGate.js +94 -0
  57. package/dist/packages/pipeline/src/backends/gitlab/reviewDeployGate.js.map +1 -0
  58. package/dist/packages/pipeline/src/build/types.d.ts +4 -3
  59. package/dist/packages/pipeline/src/build/types.js.map +1 -1
  60. package/dist/packages/pipeline/src/deploy/base/deploy.js +25 -12
  61. package/dist/packages/pipeline/src/deploy/base/deploy.js.map +1 -1
  62. package/dist/packages/pipeline/src/index.d.ts +2 -0
  63. package/dist/packages/pipeline/src/index.js +2 -0
  64. package/dist/packages/pipeline/src/index.js.map +1 -1
  65. package/dist/packages/pipeline/src/pipeline/createJobsForComponent.js +12 -2
  66. package/dist/packages/pipeline/src/pipeline/createJobsForComponent.js.map +1 -1
  67. package/dist/packages/pipeline/src/pipeline/createJobsForWorkspace.js +7 -2
  68. package/dist/packages/pipeline/src/pipeline/createJobsForWorkspace.js.map +1 -1
  69. package/dist/packages/pipeline/src/pipeline/resolveRequirements.d.ts +2 -0
  70. package/dist/packages/pipeline/src/pipeline/resolveRequirements.js +4 -2
  71. package/dist/packages/pipeline/src/pipeline/resolveRequirements.js.map +1 -1
  72. package/dist/packages/pipeline/src/postBuildTest/createPostBuildTestJobs.d.ts +16 -0
  73. package/dist/packages/pipeline/src/postBuildTest/createPostBuildTestJobs.js +167 -0
  74. package/dist/packages/pipeline/src/postBuildTest/createPostBuildTestJobs.js.map +1 -0
  75. package/dist/packages/pipeline/src/postBuildTest/index.d.ts +2 -0
  76. package/dist/packages/pipeline/src/postBuildTest/index.js +19 -0
  77. package/dist/packages/pipeline/src/postBuildTest/index.js.map +1 -0
  78. package/dist/packages/pipeline/src/postBuildTest/types.d.ts +61 -0
  79. package/dist/packages/pipeline/src/postBuildTest/types.js +3 -0
  80. package/dist/packages/pipeline/src/postBuildTest/types.js.map +1 -0
  81. package/dist/packages/pipeline/src/reviewApps.d.ts +38 -0
  82. package/dist/packages/pipeline/src/reviewApps.js +86 -0
  83. package/dist/packages/pipeline/src/reviewApps.js.map +1 -0
  84. package/dist/packages/pipeline/src/reviewAppsPolicy.d.ts +46 -0
  85. package/dist/packages/pipeline/src/reviewAppsPolicy.js +37 -0
  86. package/dist/packages/pipeline/src/reviewAppsPolicy.js.map +1 -0
  87. package/dist/packages/pipeline/src/types/config.d.ts +55 -0
  88. package/dist/packages/pipeline/src/types/config.js.map +1 -1
  89. package/dist/packages/pipeline/src/types/jobs.d.ts +2 -2
  90. package/dist/packages/pipeline/src/types/jobs.js +1 -0
  91. package/dist/packages/pipeline/src/types/jobs.js.map +1 -1
  92. package/dist/runner-images/changesets/scripts/changesetsRelease +0 -0
  93. package/dist/runner-images/kubernetes/scripts/kubernetesCreateSecret +0 -0
  94. package/dist/runner-images/kubernetes/scripts/kubernetesDelete +0 -0
  95. package/dist/runner-images/kubernetes/scripts/kubernetesDeploy +0 -0
  96. package/dist/runner-images/kubernetes/scripts/kubernetesRollback +0 -0
  97. package/dist/skills/catladder-builds/SKILL.md +50 -2
  98. package/dist/skills/catladder-builds/references/build-types.md +10 -2
  99. package/dist/skills/catladder-cli/references/commands.md +13 -0
  100. package/dist/skills/catladder-config/SKILL.md +4 -0
  101. package/dist/skills/catladder-deploys/SKILL.md +6 -0
  102. package/dist/skills/catladder-pipelines/SKILL.md +97 -3
  103. package/dist/tsconfig.tsbuildinfo +1 -1
  104. package/package.json +1 -1
  105. package/src/catci.ts +29 -0
  106. package/src/commands/index.ts +4 -0
  107. package/src/commands/project/commandMrPin.ts +15 -14
  108. package/src/commands/project/commandMrReviewApp.ts +143 -0
  109. package/src/reviewApps/github.ts +253 -0
@@ -1,12 +1,22 @@
1
1
  import type { Pipeline } from "../../types";
2
2
  import { type ResolvedAutoStopConfig } from "../../autoStop";
3
+ import { type ResolvedReviewAppsConfig } from "../../reviewApps";
3
4
  type PickRequired<T, K extends keyof T> = Required<Pick<T, K>> & Omit<T, K>;
4
- export declare const createGitlabPipelineWithDefaults: ({ image, variables, before_script, branchPipelines, autoStop, ...config }: PickRequired<Partial<Pipeline<"gitlab">>, "stages" | "jobs"> & {
5
+ /**
6
+ * gitlab requires a top-level default image for jobs that don't set their
7
+ * own. Every catladder-generated job sets an explicit image, so this
8
+ * fallback is never pulled for them — it just needs to be a valid,
9
+ * build-free image (a catladder job image would drag in a build job).
10
+ * Trivial jobs (the review deploy switch) reuse it explicitly.
11
+ */
12
+ export declare const DEFAULT_PIPELINE_IMAGE = "node:22";
13
+ export declare const createGitlabPipelineWithDefaults: ({ image, variables, before_script, branchPipelines, autoStop, reviewApps, ...config }: PickRequired<Partial<Pipeline<"gitlab">>, "stages" | "jobs"> & {
5
14
  /**
6
15
  * branches with their own pipeline (envs with `on: { branch: ... }`) —
7
16
  * they get a named entry in the workflow name rules
8
17
  */
9
18
  branchPipelines?: string[];
10
19
  autoStop?: ResolvedAutoStopConfig;
20
+ reviewApps?: ResolvedReviewAppsConfig;
11
21
  }) => Pipeline<"gitlab">;
12
22
  export {};
@@ -1,20 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createGitlabPipelineWithDefaults = void 0;
3
+ exports.createGitlabPipelineWithDefaults = exports.DEFAULT_PIPELINE_IMAGE = void 0;
4
4
  const bash_1 = require("../../../../bash/src/index.js");
5
5
  const autoStop_1 = require("../../autoStop");
6
+ const reviewApps_1 = require("../../reviewApps");
6
7
  const rules_1 = require("../../rules");
7
8
  /**
8
9
  * gitlab requires a top-level default image for jobs that don't set their
9
10
  * own. Every catladder-generated job sets an explicit image, so this
10
- * fallback is never actually pulled — it just needs to be a valid,
11
+ * fallback is never pulled for them — it just needs to be a valid,
11
12
  * build-free image (a catladder job image would drag in a build job).
13
+ * Trivial jobs (the review deploy switch) reuse it explicitly.
12
14
  */
13
- const DEFAULT_PIPELINE_IMAGE = "node:22";
14
- const createGitlabPipelineWithDefaults = ({ image, variables, before_script, branchPipelines = [], autoStop, ...config }) => {
15
+ exports.DEFAULT_PIPELINE_IMAGE = "node:22";
16
+ const createGitlabPipelineWithDefaults = ({ image, variables, before_script, branchPipelines = [], autoStop, reviewApps, ...config }) => {
15
17
  const pinLabel = autoStop && autoStop.pinLabel;
16
18
  return {
17
- image: image !== null && image !== void 0 ? image : DEFAULT_PIPELINE_IMAGE,
19
+ image: image !== null && image !== void 0 ? image : exports.DEFAULT_PIPELINE_IMAGE,
18
20
  variables: {
19
21
  FF_USE_FASTZIP: "true", // enable fastzip - a faster zip implementation that also supports level configuration.
20
22
  ARTIFACT_COMPRESSION_LEVEL: "fast", // we value speed over compression
@@ -52,6 +54,16 @@ const createGitlabPipelineWithDefaults = ({ image, variables, before_script, bra
52
54
  PIPELINE_NAME: "Thinking...",
53
55
  },
54
56
  },
57
+ // reviewApps.drafts: "skip" — draft MRs get no pipeline (rules
58
+ // stop at the first match, so this must come first)
59
+ ...((reviewApps === null || reviewApps === void 0 ? void 0 : reviewApps.drafts) === "skip"
60
+ ? [
61
+ {
62
+ if: `${rules_1.RULE_IS_MERGE_REQUEST.if} && ${reviewApps_1.GITLAB_DRAFT_MR_CONDITION}`,
63
+ when: "never",
64
+ },
65
+ ]
66
+ : []),
55
67
  // pinned MRs (rules stop at the first match, so this must come
56
68
  // before the plain merge-request rule)
57
69
  ...(pinLabel
@@ -1 +1 @@
1
- {"version":3,"file":"createGitlabPipeline.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/gitlab/createGitlabPipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createGitlabPipeline.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/gitlab/createGitlabPipeline.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,8 @@ import type { Config } from "../../types/config";
3
3
  * while technically not required, we group different envs in its own stage
4
4
  * each job from `createJobs` that is defined as `envMode: "stagePerEnv"` will have `deploy dev`, etc. instead of just `deploy`
5
5
  * this is just so that it looks nicer in gitlab and makes running mutliple manual tasks more easy to use
6
+ *
7
+ * `usedStages` are the stages of all generated jobs; optional stages are
8
+ * dropped when none of them is used.
6
9
  */
7
- export declare function getPipelineStages(config: Config): string[];
10
+ export declare function getPipelineStages(config: Config, usedStages?: Set<string>): string[];
@@ -3,14 +3,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getPipelineStages = void 0;
4
4
  const config_1 = require("../../config");
5
5
  const jobs_1 = require("../../types/jobs");
6
+ /**
7
+ * stages that only appear in the pipeline when a job uses them, so that
8
+ * projects not using the feature keep their generated files unchanged
9
+ */
10
+ const OPTIONAL_STAGES = ["post-build"];
6
11
  /**
7
12
  * while technically not required, we group different envs in its own stage
8
13
  * each job from `createJobs` that is defined as `envMode: "stagePerEnv"` will have `deploy dev`, etc. instead of just `deploy`
9
14
  * this is just so that it looks nicer in gitlab and makes running mutliple manual tasks more easy to use
15
+ *
16
+ * `usedStages` are the stages of all generated jobs; optional stages are
17
+ * dropped when none of them is used.
10
18
  */
11
- function getPipelineStages(config) {
19
+ function getPipelineStages(config, usedStages = new Set()) {
12
20
  const allEnvs = (0, config_1.getAllEnvsInAllComponents)(config).filter((e) => e !== "local");
13
- const stages = jobs_1.BASE_STAGES.reduce((acc, baseStage) => [
21
+ const isUsed = (baseStage) => [...usedStages].some((stage) => stage === baseStage || stage.startsWith(`${baseStage} `));
22
+ const stages = jobs_1.BASE_STAGES.filter((baseStage) => !OPTIONAL_STAGES.includes(baseStage) || isUsed(baseStage)).reduce((acc, baseStage) => [
14
23
  ...acc,
15
24
  baseStage,
16
25
  ...allEnvs.map((e) => `${baseStage} ${e}`),
@@ -1 +1 @@
1
- {"version":3,"file":"getPipelineStages.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/gitlab/getPipelineStages.ts"],"names":[],"mappings":";;;AAAA,yCAAyD;AAEzD,2CAA+C;AAE/C;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,MAAM,OAAO,GAAG,IAAA,kCAAyB,EAAC,MAAM,CAAC,CAAC,MAAM,CACtD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CACrB,CAAC;IACF,MAAM,MAAM,GAAG,kBAAW,CAAC,MAAM,CAC/B,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC;QAClB,GAAG,GAAG;QACN,SAAS;QACT,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,IAAI,CAAC,EAAE,CAAC;KAC3C,EACD,EAAE,CACH,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAbD,8CAaC"}
1
+ {"version":3,"file":"getPipelineStages.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/gitlab/getPipelineStages.ts"],"names":[],"mappings":";;;AAAA,yCAAyD;AAGzD,2CAA+C;AAE/C;;;GAGG;AACH,MAAM,eAAe,GAAgB,CAAC,YAAY,CAAC,CAAC;AAEpD;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAC/B,MAAc,EACd,aAA0B,IAAI,GAAG,EAAE;IAEnC,MAAM,OAAO,GAAG,IAAA,kCAAyB,EAAC,MAAM,CAAC,CAAC,MAAM,CACtD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CACrB,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,SAAoB,EAAE,EAAE,CACtC,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAClB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC,CACpE,CAAC;IACJ,MAAM,MAAM,GAAG,kBAAW,CAAC,MAAM,CAC/B,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,CACzE,CAAC,MAAM,CACN,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC;QAClB,GAAG,GAAG;QACN,SAAS;QACT,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,IAAI,CAAC,EAAE,CAAC;KAC3C,EACD,EAAE,CACH,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAtBD,8CAsBC"}
@@ -0,0 +1,26 @@
1
+ import type { AllCatladderJobs } from "../../pipeline/createAllJobs";
2
+ import { type ResolvedReviewAppsConfig } from "../../reviewApps";
3
+ import type { GitlabJobDef } from "../../types";
4
+ export declare const REVIEW_DEPLOY_GATE_JOB_NAME = "\uD83D\uDE80 deploy review";
5
+ /**
6
+ * the review deploy switch of a merge request (see reviewApps.ts): ONE
7
+ * job per MR pipeline that unlocks the delivery chains (docker → deploy
8
+ * → verify) of all components' review apps, instead of a manual job per
9
+ * component — or a docker build per component in every pipeline.
10
+ *
11
+ * The chain heads `needs` the switch. It is a no-op job with
12
+ * `allow_failure: true`: while it is unplayed, gitlab marks its
13
+ * dependents skipped and the pipeline still passes ("Pipelines must
14
+ * succeed" keeps working); playing it resets them to created, so it
15
+ * can be played any time — early clicks wait for the builds and tests
16
+ * like the chains always did (the same mechanism as the release
17
+ * button).
18
+ *
19
+ * The label/draft policy decides whether it starts on its own. Label
20
+ * changes only apply to the next pipeline (gitlab doesn't start one for
21
+ * them) — `catladder mr review-app-on` sets the label and triggers one.
22
+ *
23
+ * Mutates the needs of the gated jobs; returns the switch job, or
24
+ * nothing when review deploys aren't gated (or nothing deploys).
25
+ */
26
+ export declare const addGitlabReviewDeployGate: (allJobs: AllCatladderJobs, reviewApps: ResolvedReviewAppsConfig) => GitlabJobDef | undefined;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addGitlabReviewDeployGate = exports.REVIEW_DEPLOY_GATE_JOB_NAME = void 0;
4
+ const reviewApps_1 = require("../../reviewApps");
5
+ const rules_1 = require("../../rules");
6
+ const createGitlabPipeline_1 = require("./createGitlabPipeline");
7
+ exports.REVIEW_DEPLOY_GATE_JOB_NAME = "🚀 deploy review";
8
+ /**
9
+ * the review deploy switch of a merge request (see reviewApps.ts): ONE
10
+ * job per MR pipeline that unlocks the delivery chains (docker → deploy
11
+ * → verify) of all components' review apps, instead of a manual job per
12
+ * component — or a docker build per component in every pipeline.
13
+ *
14
+ * The chain heads `needs` the switch. It is a no-op job with
15
+ * `allow_failure: true`: while it is unplayed, gitlab marks its
16
+ * dependents skipped and the pipeline still passes ("Pipelines must
17
+ * succeed" keeps working); playing it resets them to created, so it
18
+ * can be played any time — early clicks wait for the builds and tests
19
+ * like the chains always did (the same mechanism as the release
20
+ * button).
21
+ *
22
+ * The label/draft policy decides whether it starts on its own. Label
23
+ * changes only apply to the next pipeline (gitlab doesn't start one for
24
+ * them) — `catladder mr review-app-on` sets the label and triggers one.
25
+ *
26
+ * Mutates the needs of the gated jobs; returns the switch job, or
27
+ * nothing when review deploys aren't gated (or nothing deploys).
28
+ */
29
+ const addGitlabReviewDeployGate = (allJobs, reviewApps) => {
30
+ var _a;
31
+ if (!(0, reviewApps_1.isReviewDeployGated)(reviewApps)) {
32
+ return undefined;
33
+ }
34
+ let gated = false;
35
+ for (const { context, jobs } of allJobs.components) {
36
+ for (const job of jobs) {
37
+ // the chain heads: verify follows its deploy anyway
38
+ if ((0, reviewApps_1.isReviewDeliveryJob)(context, job) && job.stage !== "verify") {
39
+ job.needs = [
40
+ ...((_a = job.needs) !== null && _a !== void 0 ? _a : []),
41
+ { job: exports.REVIEW_DEPLOY_GATE_JOB_NAME, artifacts: false, global: true },
42
+ ];
43
+ gated = true;
44
+ }
45
+ }
46
+ }
47
+ if (!gated) {
48
+ return undefined;
49
+ }
50
+ const isMr = rules_1.RULE_IS_MERGE_REQUEST.if;
51
+ const manual = { when: "manual", allow_failure: true };
52
+ const auto = { when: "on_success" };
53
+ const policyRules = reviewApps.deploy === "optIn"
54
+ ? [
55
+ {
56
+ if: `${isMr} && $CI_MERGE_REQUEST_LABELS =~ ${(0, reviewApps_1.getGitlabLabelRegex)(reviewApps.label)}`,
57
+ ...auto,
58
+ },
59
+ { if: isMr, ...manual },
60
+ ]
61
+ : reviewApps.deploy === "optOut"
62
+ ? [
63
+ {
64
+ if: `${isMr} && $CI_MERGE_REQUEST_LABELS =~ ${(0, reviewApps_1.getGitlabLabelRegex)(reviewApps.skipLabel)}`,
65
+ ...manual,
66
+ },
67
+ { if: isMr, ...auto },
68
+ ]
69
+ : reviewApps.deploy === "manual"
70
+ ? [{ if: isMr, ...manual }]
71
+ : [{ if: isMr, ...auto }];
72
+ return {
73
+ stage: "setup",
74
+ image: createGitlabPipeline_1.DEFAULT_PIPELINE_IMAGE,
75
+ variables: { GIT_STRATEGY: "none" },
76
+ needs: [],
77
+ interruptible: true,
78
+ allow_failure: true,
79
+ script: [
80
+ `echo "review apps unlocked — the docker → deploy → verify chains of all components run as soon as their builds and tests succeeded"`,
81
+ ],
82
+ rules: [
83
+ rules_1.RULE_NEVER_ON_AGENT_TRIGGER,
84
+ // drafts never deploy on their own (drafts: "skip" has no
85
+ // pipeline at all, see the workflow rules)
86
+ ...(reviewApps.drafts !== "likeReady"
87
+ ? [{ if: `${isMr} && ${reviewApps_1.GITLAB_DRAFT_MR_CONDITION}`, ...manual }]
88
+ : []),
89
+ ...policyRules,
90
+ ],
91
+ };
92
+ };
93
+ exports.addGitlabReviewDeployGate = addGitlabReviewDeployGate;
94
+ //# sourceMappingURL=reviewDeployGate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewDeployGate.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/gitlab/reviewDeployGate.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { Artifacts, EnvVars } from "../types";
2
2
  import type { JobImageConfig } from "../customImages/projectImages";
3
3
  import type { Services } from "../types/gitlab-ci-yml";
4
+ import type { WithPostBuildTests } from "../postBuildTest/types";
4
5
  import type { CatladderJob, CatladderJobCache } from "../types/jobs";
5
6
  export type CacheConfigAdvanced = Omit<CatladderJobCache, "paths" | "key"> & {
6
7
  /**
@@ -207,7 +208,7 @@ export type BuildConfigBase = {
207
208
  */
208
209
  releaseFiles?: string[];
209
210
  };
210
- } & WithCacheConfig;
211
+ } & WithCacheConfig & WithPostBuildTests;
211
212
  export type BuildConfigNodeBase = BuildConfigBase & {
212
213
  /**
213
214
  * runs a command after yarn install. postinstall in package.json won't work for yarn plug and play.
@@ -375,7 +376,7 @@ export type BuildConfigFromWorkspace = {
375
376
  *
376
377
  */
377
378
  artifactsExcludePaths?: string[];
378
- } & WithCacheConfig;
379
+ } & WithCacheConfig & WithPostBuildTests;
379
380
  export type BuildConfigStandalone = BuildConfigNode | BuildConfigNodeStatic | BuildConfigStorybook | BuildConfigMeteor | BuildConfigCustom | BuildConfigRails;
380
381
  export type BuildConfig = BuildConfigFromWorkspace | BuildConfigStandalone;
381
382
  export type BuildConfigStandaloneType = BuildConfigStandalone["type"];
@@ -426,7 +427,7 @@ export type WorkspaceBuildConfigBase = {
426
427
  * tags for the underlying job runner (e.g gitlab)
427
428
  */
428
429
  jobTags?: string[];
429
- } & WithCacheConfig;
430
+ } & WithCacheConfig & WithPostBuildTests;
430
431
  export type WorkspaceBuildConfigNode = {
431
432
  type: "node";
432
433
  buildCommand?: string | string[] | null | false;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/build/types.ts"],"names":[],"mappings":";;;AA+cO,MAAM,uBAAuB,GAAG,CACrC,CAAsB,EACM,EAAE;IAC9B,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC;AALW,QAAA,uBAAuB,2BAKlC;AAEK,MAAM,aAAa,GAAG,CAC3B,CAAc,EACd,GAAG,KAAQ,EACqC,EAAE;IAClD,IAAI,CAAC,IAAA,+BAAuB,EAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/build/types.ts"],"names":[],"mappings":";;;AAkdO,MAAM,uBAAuB,GAAG,CACrC,CAAsB,EACM,EAAE;IAC9B,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC;AALW,QAAA,uBAAuB,2BAKlC;AAEK,MAAM,aAAa,GAAG,CAC3B,CAAc,EACd,GAAG,KAAQ,EACqC,EAAE;IAClD,IAAI,CAAC,IAAA,+BAAuB,EAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB"}
@@ -7,6 +7,7 @@ const jobs_1 = require("../../types/jobs");
7
7
  const utils_1 = require("../utils");
8
8
  const autoStop_1 = require("../../autoStop");
9
9
  const stop_1 = require("./stop");
10
+ const reviewApps_1 = require("../../reviewApps");
10
11
  const variables_1 = require("./variables");
11
12
  exports.DEPLOY_JOB_NAME = "🚀 Deploy";
12
13
  class DeployJob extends jobs_1.CatladderJob {
@@ -43,9 +44,15 @@ class DeployJob extends jobs_1.CatladderJob {
43
44
  : ((_b = context.componentConfig.env) === null || _b === void 0 ? void 0 : _b.stage) === false
44
45
  ? "auto" // is prod, but no staging, auto deploy
45
46
  : "manual"; // manually deploy
46
- const whenDeploy = whenDeployDefined
47
- ? whenDeployDefined
48
- : whenDeployDefault;
47
+ // gated review apps: one switch per MR/PR unlocks the whole delivery
48
+ // chain (see reviewApps.ts), the deploy itself then runs on its own
49
+ const isGatedReviewApp = context.environment.instance.type === "review" &&
50
+ (0, reviewApps_1.isReviewDeployGated)((0, reviewApps_1.getReviewAppsConfig)(context.fullConfig));
51
+ const whenDeploy = isGatedReviewApp
52
+ ? "auto"
53
+ : whenDeployDefined
54
+ ? whenDeployDefined
55
+ : whenDeployDefault;
49
56
  // wait for the deployment of other components first
50
57
  const waitForRequirements = (_d = (_c = deployConfig === null || deployConfig === void 0 ? void 0 : deployConfig.waitFor) === null || _c === void 0 ? void 0 : _c.map((c) => ({
51
58
  capability: "deployment",
@@ -89,14 +96,20 @@ class DeployJob extends jobs_1.CatladderJob {
89
96
  : []),
90
97
  ];
91
98
  // we don't want to deploy when there is a broken test
92
- const qualityGateRequirement = {
93
- capability: "qualityGate",
94
- artifacts: false,
95
- // use test from workspace build
96
- from: (0, context_1.componentContextHasWorkspaceBuild)(context)
97
- ? { workspace: context.build.workspaceName }
98
- : undefined,
99
- };
99
+ const qualityGateRequirements = [
100
+ // the component's own gates (e.g. post-build tests, custom test jobs)
101
+ { capability: "qualityGate", artifacts: false },
102
+ // ...and the gates of the workspace build it is built in
103
+ ...((0, context_1.componentContextHasWorkspaceBuild)(context)
104
+ ? [
105
+ {
106
+ capability: "qualityGate",
107
+ artifacts: false,
108
+ from: { workspace: context.build.workspaceName },
109
+ },
110
+ ]
111
+ : []),
112
+ ];
100
113
  super({
101
114
  name: exports.DEPLOY_JOB_NAME,
102
115
  script: jobDefinition.script,
@@ -113,7 +126,7 @@ class DeployJob extends jobs_1.CatladderJob {
113
126
  ...waitForRequirements,
114
127
  // if the build is disabled, we don't need to wait for it
115
128
  ...(context.build.type !== "disabled"
116
- ? [...buildRequirements, qualityGateRequirement]
129
+ ? [...buildRequirements, ...qualityGateRequirements]
117
130
  : []),
118
131
  ],
119
132
  gate: whenDeploy,
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/base/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/base/deploy.ts"],"names":[],"mappings":";;;AAAA,+CAG4B;AAE5B,iDAG6B;AAE7B,2CAAgD;AAChD,oCAA8C;AAC9C,6CAA8E;AAC9E,iCAAuC;AACvC,iDAA4E;AAE5E,2CAAsD;AAEzC,QAAA,eAAe,GAAG,WAAW,CAAC;AAE3C,MAAa,SAAU,SAAQ,mBAAY;IACzC,YAAY,OAAyB,EAAE,aAAkC;;QACvE,MAAM,SAAS,GAAG,IAAA,4BAAmB,EAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,IAAA,0BAAkB,EAAC,OAAO,CAAC,CAAC;QAEhD,iEAAiE;QACjE,sDAAsD;QACtD,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;QACxD,MAAM,cAAc,GAAG,IAAA,4BAAiB,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7D,MAAM,eAAe,GACnB,OAAO,CAAC,WAAW,CAAC,OAAO,KAAK,QAAQ;YACtC,CAAC,CAAC,6DAA6D;gBAC7D,2DAA2D;gBAC3D,cAAc,CAAC,QAAQ,KAAK,KAAK;oBACjC,CAAC,CAAC,cAAc,CAAC,MAAM;oBACvB,CAAC,CAAC,IAAI,oCAAyB,EAAE;YACnC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,KAAK,KAAK;gBACrC,CAAC,CAAC,cAAc,CAAC,GAAG;gBACpB,CAAC,CAAC,SAAS,CAAC;QAClB,mEAAmE;QACnE,+DAA+D;QAC/D,MAAM,QAAQ,GACZ,kBAAkB,KAAK,SAAS;YAC9B,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,kBAAkB,KAAK,KAAK;gBAC5B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,kBAAkB,CAAC;QAE3B,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,MAAM,0CAAE,MAAM,CAAC;QAE5C,uDAAuD;QACvD,MAAM,iBAAiB,GACrB,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACpE,mGAAmG;QACnG,MAAM,iBAAiB,GACrB,OAAO,CAAC,WAAW,CAAC,OAAO,KAAK,MAAM;YACpC,CAAC,CAAC,MAAM,CAAC,4BAA4B;YACrC,CAAC,CAAC,CAAA,MAAA,OAAO,CAAC,eAAe,CAAC,GAAG,0CAAE,KAAK,MAAK,KAAK;gBAC5C,CAAC,CAAC,MAAM,CAAC,uCAAuC;gBAChD,CAAC,CAAC,QAAQ,CAAC,CAAC,kBAAkB;QACpC,qEAAqE;QACrE,oEAAoE;QACpE,MAAM,gBAAgB,GACpB,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ;YAC9C,IAAA,gCAAmB,EAAC,IAAA,gCAAmB,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,gBAAgB;YACjC,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,iBAAiB;gBACjB,CAAC,CAAC,iBAAiB;gBACnB,CAAC,CAAC,iBAAiB,CAAC;QAExB,oDAAoD;QACpD,MAAM,mBAAmB,GACvB,MAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,UAAU,EAAE,YAAY;YACxB,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;YACtB,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,IAAI,EAAE,iDAAiD;SAChE,CAAC,CAAC,mCAAI,EAAE,CAAC;QAEZ,MAAM,iBAAiB,GAAkB,IAAA,2CAAiC,EACxE,OAAO,CACR;YACC,CAAC,CAAC,SAAS,CAAC,iCAAiC;gBAC3C,CAAC,CAAC;oBACE;wBACE,0DAA0D;wBAC1D,UAAU,EAAE,aAAa;wBACzB,SAAS,EAAE,KAAK;wBAChB,MAAM,EAAE,IAAI;qBACb;iBACF;gBACH,CAAC,CAAC;oBACE;wBACE,4CAA4C;wBAC5C,UAAU,EAAE,gBAAgB;wBAC5B,SAAS,EAAE,IAAI;wBACf,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE;qBACjD;iBACF;YACL,CAAC,CAAC;gBACE;oBACE,2CAA2C;oBAC3C,UAAU,EAAE,OAAO;oBACnB,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,4DAA4D;iBAClG;gBACD,GAAG,CAAC,SAAS;oBACX,CAAC,CAAC;wBACE;4BACE,0DAA0D;4BAC1D,UAAU,EAAE,aAAsB;4BAClC,SAAS,EAAE,KAAK;4BAChB,MAAM,EAAE,IAAI;yBACb;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;QAEN,sDAAsD;QACtD,MAAM,uBAAuB,GAAkB;YAC7C,sEAAsE;YACtE,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE;YAC/C,yDAAyD;YACzD,GAAG,CAAC,IAAA,2CAAiC,EAAC,OAAO,CAAC;gBAC5C,CAAC,CAAC;oBACE;wBACE,UAAU,EAAE,aAAsB;wBAClC,SAAS,EAAE,KAAK;wBAChB,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE;qBACjD;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QAEF,KAAK,CAAC;YACJ,IAAI,EAAE,uBAAe;YACrB,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,KAAK,EAAE,aAAa,CAAC,KAAK;YAC1B,MAAM,EAAE,aAAa,CAAC,KAAK;YAC3B,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,KAAK,EAAE,aAAa,CAAC,KAAK;YAC1B,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,aAAa,EAAE,MAAA,aAAa,CAAC,aAAa,mCAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,YAAY;YACxE,OAAO,EAAE,aAAa,EAAE,6CAA6C;YAErE,KAAK,EAAE,EAAE;YAET,QAAQ,EAAE;gBACR,GAAG,mBAAmB;gBACtB,yDAAyD;gBACzD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU;oBACnC,CAAC,CAAC,CAAC,GAAG,iBAAiB,EAAE,GAAG,uBAAuB,CAAC;oBACpD,CAAC,CAAC,EAAE,CAAC;aACR;YACD,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE;gBACT,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO;gBAC9B,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,gCAAuB,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO;gBAEjD,GAAG,aAAa,CAAC,SAAS;aAC3B;YACD,eAAe,EAAE;gBACf,GAAG,mCAAuB;gBAC1B,GAAG,CAAC,MAAA,aAAa,CAAC,eAAe,mCAAI,EAAE,CAAC;gBACxC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAA,YAAY,CAAC,eAAe,mCAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9D;YACD,WAAW,EAAE,WAAW;gBACtB,CAAC,CAAC;oBACE,MAAM,EAAE,oBAAa;oBACrB,UAAU,EAAE,QAAQ;iBACrB;gBACH,CAAC,CAAC,EAAE;YACN,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;SACzD,CAAC,CAAC;IACL,CAAC;CACF;AA9JD,8BA8JC"}
@@ -1,5 +1,6 @@
1
1
  export * from "./pipeline";
2
2
  export * from "./autoStop";
3
+ export * from "./reviewApps";
3
4
  export * from "./backends";
4
5
  export * from "./types";
5
6
  export * from "./rules";
@@ -12,6 +13,7 @@ export * from "./context";
12
13
  export * from "./build";
13
14
  export * from "./deploy";
14
15
  export * from "./verify";
16
+ export * from "./postBuildTest";
15
17
  export * from "./release";
16
18
  export * from "./utils/writeFiles";
17
19
  export * from "./utils/measureTime";
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./pipeline"), exports);
18
18
  __exportStar(require("./autoStop"), exports);
19
+ __exportStar(require("./reviewApps"), exports);
19
20
  __exportStar(require("./backends"), exports);
20
21
  __exportStar(require("./types"), exports);
21
22
  __exportStar(require("./rules"), exports);
@@ -28,6 +29,7 @@ __exportStar(require("./context"), exports);
28
29
  __exportStar(require("./build"), exports);
29
30
  __exportStar(require("./deploy"), exports);
30
31
  __exportStar(require("./verify"), exports);
32
+ __exportStar(require("./postBuildTest"), exports);
31
33
  __exportStar(require("./release"), exports);
32
34
  __exportStar(require("./utils/writeFiles"), exports);
33
35
  __exportStar(require("./utils/measureTime"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pipeline/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,6CAA2B;AAC3B,6CAA2B;AAC3B,0CAAwB;AACxB,0CAAwB;AACxB,2CAAyB;AACzB,+DAA6C;AAC7C,+DAA6C;AAC7C,2CAAyB;AACzB,0CAAwB;AACxB,4CAA0B;AAC1B,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,qDAAmC;AACnC,sDAAoC;AACpC,kDAAgC;AAChC,2CAAyB;AACzB,gDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pipeline/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,6CAA2B;AAC3B,+CAA6B;AAC7B,6CAA2B;AAC3B,0CAAwB;AACxB,0CAAwB;AACxB,2CAAyB;AACzB,+DAA6C;AAC7C,+DAA6C;AAC7C,2CAAyB;AACzB,0CAAwB;AACxB,4CAA0B;AAC1B,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,kDAAgC;AAChC,4CAA0B;AAC1B,qDAAmC;AACnC,sDAAoC;AACpC,kDAAgC;AAChC,2CAAyB;AACzB,gDAA8B"}
@@ -4,6 +4,7 @@ exports.createJobsForComponentContext = void 0;
4
4
  const build_1 = require("../build");
5
5
  const deploy_1 = require("../deploy");
6
6
  const jobs_1 = require("../types/jobs");
7
+ const createPostBuildTestJobs_1 = require("../postBuildTest/createPostBuildTestJobs");
7
8
  const createVerifyJobs_1 = require("../verify/createVerifyJobs");
8
9
  const injectDefaultVarsInCustomJobs = (context, jobs) => jobs.map(({ variables, ...job }) => {
9
10
  var _a;
@@ -23,17 +24,26 @@ const getCustomJobs = (context) => {
23
24
  return injectDefaultVarsInCustomJobs(context, rawJobs);
24
25
  };
25
26
  const createJobsForComponentContext = async (context) => {
26
- const [buildJobs, deployJobs, verifyJobs] = await Promise.all([
27
+ const [buildJobs, postBuildTestJobs, deployJobs, verifyJobs] = await Promise.all([
27
28
  context.build.type !== "disabled"
28
29
  ? build_1.BUILD_TYPES[context.build.buildType].jobs(context)
29
30
  : [],
31
+ (0, createPostBuildTestJobs_1.createPostBuildTestJobs)(context),
30
32
  context.componentConfig.deploy !== false
31
33
  ? deploy_1.DEPLOY_TYPES[context.componentConfig.deploy.type].jobs(context)
32
34
  : [],
33
35
  (0, createVerifyJobs_1.createVerifyJobs)(context),
34
36
  ]);
35
37
  const customJobs = getCustomJobs(context);
36
- return [...buildJobs, ...deployJobs, ...verifyJobs, ...customJobs];
38
+ const otherJobs = [...buildJobs, ...deployJobs, ...verifyJobs, ...customJobs];
39
+ (0, createPostBuildTestJobs_1.assertUniquePostBuildTestNames)(context, postBuildTestJobs, otherJobs);
40
+ return [
41
+ ...buildJobs,
42
+ ...postBuildTestJobs,
43
+ ...deployJobs,
44
+ ...verifyJobs,
45
+ ...customJobs,
46
+ ];
37
47
  };
38
48
  exports.createJobsForComponentContext = createJobsForComponentContext;
39
49
  //# sourceMappingURL=createJobsForComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createJobsForComponent.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/pipeline/createJobsForComponent.ts"],"names":[],"mappings":";;;AAAA,oCAAuC;AACvC,sCAAyC;AAMzC,wCAA6C;AAC7C,iEAA8D;AAE9D,MAAM,6BAA6B,GAAG,CACpC,OAAyB,EACzB,IAAwB,EACxB,EAAE,CACF,IAAI,CAAC,GAAG,CACN,CAAC,EAAE,SAAS,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE;;IACxB,OAAA,IAAI,mBAAY,CAAC;QACf,SAAS,EAAE;YACT,GAAG,CAAC,MAAA,OAAO,CAAC,WAAW,CAAC,OAAO,mCAAI,EAAE,CAAC;YACtC,GAAG,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC;SACrB;QACD,GAAG,GAAG;KACP,CAAC,CAAA;CAAA,CACL,CAAC;AACJ,MAAM,aAAa,GAAG,CAAC,OAAyB,EAAE,EAAE;IAClD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IACnC,OAAO,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC,CAAC;AACK,MAAM,6BAA6B,GAAG,KAAK,EAChD,OAAyB,EACA,EAAE;IAC3B,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5D,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU;YAC/B,CAAC,CAAC,mBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CACvC,OAAoC,CACrC;YACH,CAAC,CAAC,EAAE;QACN,OAAO,CAAC,eAAe,CAAC,MAAM,KAAK,KAAK;YACtC,CAAC,CAAC,qBAAY,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YACjE,CAAC,CAAC,EAAE;QACN,IAAA,mCAAgB,EAAC,OAAO,CAAC;KAC1B,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,UAAU,EAAE,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC;AACrE,CAAC,CAAC;AAlBW,QAAA,6BAA6B,iCAkBxC"}
1
+ {"version":3,"file":"createJobsForComponent.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/pipeline/createJobsForComponent.ts"],"names":[],"mappings":";;;AAAA,oCAAuC;AACvC,sCAAyC;AAMzC,wCAA6C;AAC7C,sFAGkD;AAClD,iEAA8D;AAE9D,MAAM,6BAA6B,GAAG,CACpC,OAAyB,EACzB,IAAwB,EACxB,EAAE,CACF,IAAI,CAAC,GAAG,CACN,CAAC,EAAE,SAAS,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE;;IACxB,OAAA,IAAI,mBAAY,CAAC;QACf,SAAS,EAAE;YACT,GAAG,CAAC,MAAA,OAAO,CAAC,WAAW,CAAC,OAAO,mCAAI,EAAE,CAAC;YACtC,GAAG,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC;SACrB;QACD,GAAG,GAAG;KACP,CAAC,CAAA;CAAA,CACL,CAAC;AACJ,MAAM,aAAa,GAAG,CAAC,OAAyB,EAAE,EAAE;IAClD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IACnC,OAAO,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC,CAAC;AACK,MAAM,6BAA6B,GAAG,KAAK,EAChD,OAAyB,EACA,EAAE;IAC3B,MAAM,CAAC,SAAS,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,CAAC,GAC1D,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU;YAC/B,CAAC,CAAC,mBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CACvC,OAAoC,CACrC;YACH,CAAC,CAAC,EAAE;QACN,IAAA,iDAAuB,EAAC,OAAO,CAAC;QAChC,OAAO,CAAC,eAAe,CAAC,MAAM,KAAK,KAAK;YACtC,CAAC,CAAC,qBAAY,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YACjE,CAAC,CAAC,EAAE;QACN,IAAA,mCAAgB,EAAC,OAAO,CAAC;KAC1B,CAAC,CAAC;IAEL,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,UAAU,EAAE,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC;IAC9E,IAAA,wDAA8B,EAAC,OAAO,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAEtE,OAAO;QACL,GAAG,SAAS;QACZ,GAAG,iBAAiB;QACpB,GAAG,UAAU;QACb,GAAG,UAAU;QACb,GAAG,UAAU;KACd,CAAC;AACJ,CAAC,CAAC;AA5BW,QAAA,6BAA6B,iCA4BxC"}
@@ -2,9 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createJobsForWorkspace = void 0;
4
4
  const build_1 = require("../build");
5
+ const createPostBuildTestJobs_1 = require("../postBuildTest/createPostBuildTestJobs");
5
6
  const createJobsForWorkspace = async (context) => {
6
- const buildJobs = await build_1.WORKSPACE_BUILD_TYPES[context.build.buildType].jobs(context);
7
- return buildJobs;
7
+ const [buildJobs, postBuildTestJobs] = await Promise.all([
8
+ build_1.WORKSPACE_BUILD_TYPES[context.build.buildType].jobs(context),
9
+ (0, createPostBuildTestJobs_1.createPostBuildTestJobs)(context),
10
+ ]);
11
+ (0, createPostBuildTestJobs_1.assertUniquePostBuildTestNames)(context, postBuildTestJobs, buildJobs);
12
+ return [...buildJobs, ...postBuildTestJobs];
8
13
  };
9
14
  exports.createJobsForWorkspace = createJobsForWorkspace;
10
15
  //# sourceMappingURL=createJobsForWorkspace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createJobsForWorkspace.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/pipeline/createJobsForWorkspace.ts"],"names":[],"mappings":";;;AAAA,oCAAiD;AAI1C,MAAM,sBAAsB,GAAG,KAAK,EACzC,OAAyB,EACA,EAAE;IAC3B,MAAM,SAAS,GACb,MAAM,6BAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAErE,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAPW,QAAA,sBAAsB,0BAOjC"}
1
+ {"version":3,"file":"createJobsForWorkspace.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/pipeline/createJobsForWorkspace.ts"],"names":[],"mappings":";;;AAAA,oCAAiD;AACjD,sFAGkD;AAI3C,MAAM,sBAAsB,GAAG,KAAK,EACzC,OAAyB,EACA,EAAE;IAC3B,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACvD,6BAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5D,IAAA,iDAAuB,EAAC,OAAO,CAAC;KACjC,CAAC,CAAC;IACH,IAAA,wDAA8B,EAAC,OAAO,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAEtE,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,iBAAiB,CAAC,CAAC;AAC9C,CAAC,CAAC;AAVW,QAAA,sBAAsB,0BAUjC"}
@@ -1,4 +1,6 @@
1
+ import type { CapabilityName, CatladderJob } from "../types/jobs";
1
2
  import type { AllCatladderJobs } from "./createAllJobs";
3
+ export declare const providesCapability: (job: CatladderJob, capability: CapabilityName) => boolean;
2
4
  /**
3
5
  * the planner: resolves the semantic `requires` declarations of all jobs
4
6
  * to concrete job dependencies (`needs`), now that all jobs of the
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveRequirements = void 0;
3
+ exports.resolveRequirements = exports.providesCapability = void 0;
4
4
  /**
5
5
  * jobs that don't declare `provides` get a capability derived from
6
6
  * their stage. This keeps e.g. custom jobs in the test stage acting
@@ -9,6 +9,7 @@ exports.resolveRequirements = void 0;
9
9
  const DEFAULT_STAGE_CAPABILITIES = {
10
10
  build: "build",
11
11
  test: "qualityGate",
12
+ "post-build": "qualityGate",
12
13
  deploy: "deployment",
13
14
  };
14
15
  /**
@@ -30,6 +31,7 @@ const providesCapability = (job, capability) => {
30
31
  ((_a = CAPABILITY_IMPLICATIONS[c]) !== null && _a !== void 0 ? _a : []).includes(capability);
31
32
  });
32
33
  };
34
+ exports.providesCapability = providesCapability;
33
35
  /**
34
36
  * the planner: resolves the semantic `requires` declarations of all jobs
35
37
  * to concrete job dependencies (`needs`), now that all jobs of the
@@ -71,7 +73,7 @@ const expandRequirement = (context, job, requirement, allJobs) => {
71
73
  c.context.env === env;
72
74
  })
73
75
  .flatMap((c) => c.jobs);
74
- const providers = candidates.filter((candidate) => candidate !== job && providesCapability(candidate, capability));
76
+ const providers = candidates.filter((candidate) => candidate !== job && (0, exports.providesCapability)(candidate, capability));
75
77
  // consuming artifacts from nobody is almost always a broken config
76
78
  const isStrict = (_b = strict !== null && strict !== void 0 ? strict : artifacts) !== null && _b !== void 0 ? _b : false;
77
79
  if (isStrict && providers.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"resolveRequirements.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/pipeline/resolveRequirements.ts"],"names":[],"mappings":";;;AAUA;;;;GAIG;AACH,MAAM,0BAA0B,GAA+C;IAC7E,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE,YAAY;CACrB,CAAC;AAEF;;;;GAIG;AACH,MAAM,uBAAuB,GAEzB;IACF,cAAc,EAAE,CAAC,OAAO,CAAC;IACzB,WAAW,EAAE,CAAC,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,GAAiB,EAAE,UAA0B,EAAE,EAAE;;IAC3E,MAAM,YAAY,GAAG,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,MAAA,GAAG,CAAC,QAAQ,mCAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACtE,OAAO,QAAQ,CAAC,IAAI,CAClB,CAAC,CAAC,EAAE,EAAE;;QACJ,OAAA,CAAC,KAAK,UAAU;YAChB,CAAC,MAAA,uBAAuB,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;KAAA,CAC1D,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;GAOG;AACI,MAAM,mBAAmB,GAAG,CACjC,OAAyB,EACP,EAAE;IACpB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAC/C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAC5D,CAAC;IACF,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAC/C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAC5D,CAAC;IACF,qCAAqC;IAErC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAZW,QAAA,mBAAmB,uBAY9B;AAEF,MAAM,aAAa,GAAG,CACpB,OAA4C,EAC5C,GAAiB,EACjB,OAAyB,EACzB,EAAE;;IACF,IAAI,CAAC,CAAA,MAAA,GAAG,CAAC,QAAQ,0CAAE,MAAM,CAAA,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CACpD,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CACtD,CAAC;IACF,kEAAkE;IAClE,oCAAoC;IACpC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,MAAA,GAAG,CAAC,KAAK,mCAAI,EAAE,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CACxB,OAA4C,EAC5C,GAAiB,EACjB,WAAwB,EACxB,OAAyB,EACL,EAAE;;IACtB,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAExB,MAAM,aAAa,GACjB,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCACf,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAErE,MAAM,UAAU,GAAG,aAAa;QAC9B,CAAC,CAAC,OAAO,CAAC,UAAU;aACf,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CACjE;aACA,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3B,CAAC,CAAC,OAAO,CAAC,UAAU;aACf,MAAM,CACL,CAAC,CAAC,EAAE,EAAE;;YACJ,OAAA,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,OAAO,CAAC,IAAI,CAAC;gBACpD,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAA;SAAA,CACxB;aACA,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE9B,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CACjC,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,UAAU,CAAC,CACjE,CAAC;IAEF,mEAAmE;IACnE,MAAM,QAAQ,GAAG,MAAA,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,SAAS,mCAAI,KAAK,CAAC;IAE9C,IAAI,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,oBAAoB,UAAU,SAAS,GAAG,IACxC,MAAA,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,OAAO,CAAC,IAC9C,mBAAmB,GAAG,CAAC,IAAI,SAAS,OAAO,CAAC,IAAI,IAAI,CACrD,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;;QAChC,OAAA,aAAa;YACX,CAAC,CAAC;gBACE,GAAG,EAAE,QAAQ,CAAC,IAAI;gBAClB,SAAS,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,KAAK;gBAC7B,aAAa;aACd;YACH,CAAC,CAAC;gBACE,GAAG,EAAE,QAAQ,CAAC,IAAI;gBAClB,SAAS,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,KAAK;gBAC7B,aAAa,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,OAAO,CAAC,IAAI;aAC/C,CAAA;KAAA,CACN,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"resolveRequirements.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/pipeline/resolveRequirements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { ComponentContext, WorkspaceContext } from "../types/context";
2
+ import { CatladderJob } from "../types/jobs";
3
+ export declare const POST_BUILD_TEST_STAGE = "post-build";
4
+ export declare const postBuildTestJobName: (name: string) => string;
5
+ /**
6
+ * jobs for `postBuildTests`: they run after the build in the `post-build`
7
+ * stage, against the build artifacts, and act as quality gates, so a
8
+ * failing post-build test blocks the deploy.
9
+ */
10
+ export declare const createPostBuildTestJobs: (context: ComponentContext | WorkspaceContext) => Promise<CatladderJob[]>;
11
+ /**
12
+ * post-build test names are chosen by the user. Github job ids drop the
13
+ * emoji of the job name, so e.g. a post-build test named `test` would
14
+ * clash with the `🧪 test` job.
15
+ */
16
+ export declare const assertUniquePostBuildTestNames: (context: ComponentContext | WorkspaceContext, postBuildTestJobs: CatladderJob[], otherJobs: CatladderJob[]) => void;