@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.
- package/dist/apps/cli/src/catci.js +22 -0
- package/dist/apps/cli/src/catci.js.map +1 -1
- package/dist/apps/cli/src/commands/index.d.ts +1 -0
- package/dist/apps/cli/src/commands/index.js +4 -1
- package/dist/apps/cli/src/commands/index.js.map +1 -1
- package/dist/apps/cli/src/commands/project/commandMrPin.d.ts +9 -0
- package/dist/apps/cli/src/commands/project/commandMrPin.js +11 -13
- package/dist/apps/cli/src/commands/project/commandMrPin.js.map +1 -1
- package/dist/apps/cli/src/commands/project/commandMrReviewApp.d.ts +21 -0
- package/dist/apps/cli/src/commands/project/commandMrReviewApp.js +102 -0
- package/dist/apps/cli/src/commands/project/commandMrReviewApp.js.map +1 -0
- package/dist/apps/cli/src/reviewApps/github.d.ts +10 -0
- package/dist/apps/cli/src/reviewApps/github.js +196 -0
- package/dist/apps/cli/src/reviewApps/github.js.map +1 -0
- package/dist/bundles/catci/index.js +4 -4
- package/dist/bundles/catenv/index.js +1261 -70
- package/dist/bundles/catenv/xdg-open +0 -0
- package/dist/bundles/cli/clipboard_i686.exe +0 -0
- package/dist/bundles/cli/clipboard_x86_64.exe +0 -0
- package/dist/bundles/cli/index.js +1387 -86
- package/dist/bundles/cli/xdg-open +0 -0
- package/dist/bundles/cli/xsel +0 -0
- package/dist/bundles/runner-images/changesets/scripts/changesetsRelease +0 -0
- package/dist/bundles/runner-images/kubernetes/scripts/kubernetesCreateSecret +0 -0
- package/dist/bundles/runner-images/kubernetes/scripts/kubernetesDelete +0 -0
- package/dist/bundles/runner-images/kubernetes/scripts/kubernetesDeploy +0 -0
- package/dist/bundles/runner-images/kubernetes/scripts/kubernetesRollback +0 -0
- package/dist/bundles/skills/catladder-builds/SKILL.md +50 -2
- package/dist/bundles/skills/catladder-builds/references/build-types.md +10 -2
- package/dist/bundles/skills/catladder-cli/references/commands.md +13 -0
- package/dist/bundles/skills/catladder-config/SKILL.md +4 -0
- package/dist/bundles/skills/catladder-deploys/SKILL.md +6 -0
- package/dist/bundles/skills/catladder-pipelines/SKILL.md +97 -3
- package/dist/packages/pipeline/src/backends/github/GithubBackend.js +60 -3
- package/dist/packages/pipeline/src/backends/github/GithubBackend.js.map +1 -1
- package/dist/packages/pipeline/src/backends/github/aggregateCheckJob.d.ts +1 -1
- package/dist/packages/pipeline/src/backends/github/aggregateCheckJob.js +22 -8
- package/dist/packages/pipeline/src/backends/github/aggregateCheckJob.js.map +1 -1
- package/dist/packages/pipeline/src/backends/github/artifactArchive.d.ts +22 -0
- package/dist/packages/pipeline/src/backends/github/artifactArchive.js +84 -0
- package/dist/packages/pipeline/src/backends/github/artifactArchive.js.map +1 -0
- package/dist/packages/pipeline/src/backends/github/createGithubJobs.js +12 -29
- package/dist/packages/pipeline/src/backends/github/createGithubJobs.js.map +1 -1
- package/dist/packages/pipeline/src/backends/github/reviewDeployWorkflow.d.ts +128 -0
- package/dist/packages/pipeline/src/backends/github/reviewDeployWorkflow.js +510 -0
- package/dist/packages/pipeline/src/backends/github/reviewDeployWorkflow.js.map +1 -0
- package/dist/packages/pipeline/src/backends/gitlab/GitlabBackend.js +32 -5
- package/dist/packages/pipeline/src/backends/gitlab/GitlabBackend.js.map +1 -1
- package/dist/packages/pipeline/src/backends/gitlab/createGitlabPipeline.d.ts +11 -1
- package/dist/packages/pipeline/src/backends/gitlab/createGitlabPipeline.js +17 -5
- package/dist/packages/pipeline/src/backends/gitlab/createGitlabPipeline.js.map +1 -1
- package/dist/packages/pipeline/src/backends/gitlab/getPipelineStages.d.ts +4 -1
- package/dist/packages/pipeline/src/backends/gitlab/getPipelineStages.js +11 -2
- package/dist/packages/pipeline/src/backends/gitlab/getPipelineStages.js.map +1 -1
- package/dist/packages/pipeline/src/backends/gitlab/reviewDeployGate.d.ts +26 -0
- package/dist/packages/pipeline/src/backends/gitlab/reviewDeployGate.js +94 -0
- package/dist/packages/pipeline/src/backends/gitlab/reviewDeployGate.js.map +1 -0
- package/dist/packages/pipeline/src/build/types.d.ts +4 -3
- package/dist/packages/pipeline/src/build/types.js.map +1 -1
- package/dist/packages/pipeline/src/deploy/base/deploy.js +25 -12
- package/dist/packages/pipeline/src/deploy/base/deploy.js.map +1 -1
- package/dist/packages/pipeline/src/index.d.ts +2 -0
- package/dist/packages/pipeline/src/index.js +2 -0
- package/dist/packages/pipeline/src/index.js.map +1 -1
- package/dist/packages/pipeline/src/pipeline/createJobsForComponent.js +12 -2
- package/dist/packages/pipeline/src/pipeline/createJobsForComponent.js.map +1 -1
- package/dist/packages/pipeline/src/pipeline/createJobsForWorkspace.js +7 -2
- package/dist/packages/pipeline/src/pipeline/createJobsForWorkspace.js.map +1 -1
- package/dist/packages/pipeline/src/pipeline/resolveRequirements.d.ts +2 -0
- package/dist/packages/pipeline/src/pipeline/resolveRequirements.js +4 -2
- package/dist/packages/pipeline/src/pipeline/resolveRequirements.js.map +1 -1
- package/dist/packages/pipeline/src/postBuildTest/createPostBuildTestJobs.d.ts +16 -0
- package/dist/packages/pipeline/src/postBuildTest/createPostBuildTestJobs.js +167 -0
- package/dist/packages/pipeline/src/postBuildTest/createPostBuildTestJobs.js.map +1 -0
- package/dist/packages/pipeline/src/postBuildTest/index.d.ts +2 -0
- package/dist/packages/pipeline/src/postBuildTest/index.js +19 -0
- package/dist/packages/pipeline/src/postBuildTest/index.js.map +1 -0
- package/dist/packages/pipeline/src/postBuildTest/types.d.ts +61 -0
- package/dist/packages/pipeline/src/postBuildTest/types.js +3 -0
- package/dist/packages/pipeline/src/postBuildTest/types.js.map +1 -0
- package/dist/packages/pipeline/src/reviewApps.d.ts +38 -0
- package/dist/packages/pipeline/src/reviewApps.js +86 -0
- package/dist/packages/pipeline/src/reviewApps.js.map +1 -0
- package/dist/packages/pipeline/src/reviewAppsPolicy.d.ts +46 -0
- package/dist/packages/pipeline/src/reviewAppsPolicy.js +37 -0
- package/dist/packages/pipeline/src/reviewAppsPolicy.js.map +1 -0
- package/dist/packages/pipeline/src/types/config.d.ts +55 -0
- package/dist/packages/pipeline/src/types/config.js.map +1 -1
- package/dist/packages/pipeline/src/types/jobs.d.ts +2 -2
- package/dist/packages/pipeline/src/types/jobs.js +1 -0
- package/dist/packages/pipeline/src/types/jobs.js.map +1 -1
- package/dist/runner-images/changesets/scripts/changesetsRelease +0 -0
- package/dist/runner-images/kubernetes/scripts/kubernetesCreateSecret +0 -0
- package/dist/runner-images/kubernetes/scripts/kubernetesDelete +0 -0
- package/dist/runner-images/kubernetes/scripts/kubernetesDeploy +0 -0
- package/dist/runner-images/kubernetes/scripts/kubernetesRollback +0 -0
- package/dist/skills/catladder-builds/SKILL.md +50 -2
- package/dist/skills/catladder-builds/references/build-types.md +10 -2
- package/dist/skills/catladder-cli/references/commands.md +13 -0
- package/dist/skills/catladder-config/SKILL.md +4 -0
- package/dist/skills/catladder-deploys/SKILL.md +6 -0
- package/dist/skills/catladder-pipelines/SKILL.md +97 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/catci.ts +29 -0
- package/src/commands/index.ts +4 -0
- package/src/commands/project/commandMrPin.ts +15 -14
- package/src/commands/project/commandMrReviewApp.ts +143 -0
- 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
|
-
|
|
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
|
|
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
|
-
|
|
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":";;;AACA,0CAAwD;AACxD,6CAIwB;AACxB,uCAIqB;AAGrB
|
|
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
|
|
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;
|
|
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":";;;
|
|
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
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
|
93
|
-
|
|
94
|
-
artifacts: false,
|
|
95
|
-
//
|
|
96
|
-
|
|
97
|
-
?
|
|
98
|
-
|
|
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,
|
|
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":";;;AAAA,+CAG4B;AAE5B,iDAG6B;AAE7B,2CAAgD;AAChD,oCAA8C;AAC9C,6CAA8E;AAC9E,iCAAuC;
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/base/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
-
|
|
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,
|
|
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
|
|
7
|
-
|
|
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;
|
|
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;
|
|
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;
|