@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
|
File without changes
|
package/dist/bundles/cli/xsel
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: catladder-builds
|
|
3
|
-
description: Configuring how a component is built in a catladder project — the `build` config in catladder.ts (build types node / rails / meteor / custom, build & start commands, artifacts, caching, lint/test/audit jobs, the Docker image, project-declared job images, and shared workspace builds). Use when adding or changing a component's build, choosing a build type, wiring a Dockerfile/nginx image, declaring a custom CI job image (`images` config), tuning the build/test/lint jobs, or setting up a monorepo workspace build. Triggers on "build config", "buildCommand", "build type", "Dockerfile", "docker image", "job image", "jobImage", "custom image", "project image", "rails build", "monorepo build", "artifacts".
|
|
3
|
+
description: Configuring how a component is built in a catladder project — the `build` config in catladder.ts (build types node / rails / meteor / custom, build & start commands, artifacts, caching, lint/test/audit jobs, the Docker image, project-declared job images, and shared workspace builds). Use when adding or changing a component's build, choosing a build type, wiring a Dockerfile/nginx image, declaring a custom CI job image (`images` config), tuning the build/test/lint jobs, adding e2e tests against the build (`postBuildTests`), or setting up a monorepo workspace build. Triggers on "build config", "postBuildTests", "post-build test", "e2e", "playwright", "buildCommand", "build type", "Dockerfile", "docker image", "job image", "jobImage", "custom image", "project image", "rails build", "monorepo build", "artifacts".
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Component builds with catladder
|
|
@@ -66,6 +66,10 @@ type: `build: { from: "web" }` (see workspace builds below).
|
|
|
66
66
|
won't run).
|
|
67
67
|
- `lint` / `test` / `audit` — customize (`{ command, jobImage, … }`) or
|
|
68
68
|
set to `false` to disable that job.
|
|
69
|
+
- `postBuildTests` — named tests against the **build output** (e.g. an
|
|
70
|
+
e2e suite against the production build with a Postgres service). Each
|
|
71
|
+
entry becomes a job in the `post-build` stage between build and deploy
|
|
72
|
+
and blocks the deploy when it fails (see below).
|
|
69
73
|
- `artifactsPaths` / `artifactsExcludePaths` — extra build artifacts
|
|
70
74
|
(`dist` and `.next` are always included).
|
|
71
75
|
- `cache` — build caching (see the `catladder-pipelines` skill for the
|
|
@@ -82,11 +86,55 @@ type: `build: { from: "web" }` (see workspace builds below).
|
|
|
82
86
|
(`{ type: "nginx" | "node" | "meteor" }`) or
|
|
83
87
|
`{ type: "custom" }` (expects a `Dockerfile`).
|
|
84
88
|
|
|
89
|
+
## Post-build tests (e2e against the build)
|
|
90
|
+
|
|
91
|
+
`lint`/`test` run against the sources, in parallel with the build. Tests
|
|
92
|
+
that need the built app go into `postBuildTests`:
|
|
93
|
+
|
|
94
|
+
```ts
|
|
95
|
+
build: {
|
|
96
|
+
type: "node",
|
|
97
|
+
postBuildTests: {
|
|
98
|
+
e2e: {
|
|
99
|
+
command: "pnpm test:e2e", // runs in the build dir
|
|
100
|
+
jobImage: "mcr.microsoft.com/playwright:v1.56.0-noble",
|
|
101
|
+
services: [{ name: "postgres:17", alias: "postgres",
|
|
102
|
+
variables: { POSTGRES_PASSWORD: "postgres" } }],
|
|
103
|
+
vars: { DATABASE_URL: "postgres://postgres:postgres@postgres:5432/postgres" },
|
|
104
|
+
artifacts: { paths: ["apps/web/playwright-report"] }, // repo-root relative
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
- The job (`🔬 e2e`, stage `post-build <env>`) downloads the build
|
|
111
|
+
artifacts (`.next`, `dist`, `artifactsPaths`), installs dependencies
|
|
112
|
+
for node builds, then runs `command`. The command starts the app
|
|
113
|
+
itself, e.g. playwright `webServer: { command: "pnpm start" }`.
|
|
114
|
+
Builds without artifacts (`rails`, `buildCommand: false`) just run
|
|
115
|
+
it after the build.
|
|
116
|
+
- It is a quality gate: the env's deploy waits for it; on github it is
|
|
117
|
+
part of the `catladder ✅` required check. `allowFailure: true` makes
|
|
118
|
+
it report-only.
|
|
119
|
+
- It gets the build vars plus `vars`, **not** the deployed env's
|
|
120
|
+
runtime vars/secrets — use services instead of the real database.
|
|
121
|
+
- Artifacts are uploaded also when the job fails.
|
|
122
|
+
- Not run in tagged releases. Disable one per env:
|
|
123
|
+
`env: { dev: { build: { postBuildTests: { e2e: false } } } }`.
|
|
124
|
+
- Names must not clash with other jobs of the component (e.g. `test`,
|
|
125
|
+
`lint`) — generation fails with a clear error.
|
|
126
|
+
- Workspace builds: on `builds.<ws>` they block the deploys of all
|
|
127
|
+
components in the workspace; on `build: { from: "<ws>", postBuildTests }`
|
|
128
|
+
only that component's deploy.
|
|
129
|
+
- To test the **deployed** env instead (smoke tests on dev / review
|
|
130
|
+
apps), use the component's `verify` (post-deploy, does not block the
|
|
131
|
+
deploy). The same suite can serve both, with `BASE_URL` as the switch.
|
|
132
|
+
|
|
85
133
|
## Project images (custom CI job images)
|
|
86
134
|
|
|
87
135
|
When a job needs a toolchain catladder doesn't ship (Java, Playwright,
|
|
88
136
|
…), declare a Docker image at the top level under `images` and reference
|
|
89
|
-
it in any `jobImage` field (build, `test.jobImage`, custom/pages deploy,
|
|
137
|
+
it in any `jobImage` field (build, `test.jobImage`, `postBuildTests`, custom/pages deploy,
|
|
90
138
|
verify):
|
|
91
139
|
|
|
92
140
|
```ts
|
|
@@ -12,6 +12,7 @@ generated pipeline files.
|
|
|
12
12
|
| `startCommand` | `string` | runtime start command |
|
|
13
13
|
| `postInstall` | `string \| string[]` | runs after the package-manager install (node family) |
|
|
14
14
|
| `lint` / `test` / `audit` | `false \| TestJobCustom` | customize or disable the job |
|
|
15
|
+
| `postBuildTests` | `Record<string, PostBuildTestConfig \| false>` | named tests against the build output in the `post-build` stage; block the deploy |
|
|
15
16
|
| `artifactsPaths` | `string[]` | extra artifacts (`dist`, `.next` always included) |
|
|
16
17
|
| `artifactsExcludePaths` | `string[]` | artifact excludes |
|
|
17
18
|
| `artifactsReports` | `{ junit?: string[] }` | CI test report paths |
|
|
@@ -27,6 +28,13 @@ generated pipeline files.
|
|
|
27
28
|
`artifactsReports`, `artifacts`, `runnerVariables`, `allowFailure`
|
|
28
29
|
(`allowFailure` defaults to `true` for `audit`).
|
|
29
30
|
|
|
31
|
+
`PostBuildTestConfig` (for `postBuildTests` entries): `TestJobCustom` with
|
|
32
|
+
a required `command`, plus `services?: Services` (gitlab shape, reachable
|
|
33
|
+
by alias) and `vars?: Record<string,string>`. The job gets the build
|
|
34
|
+
artifacts, the build vars and `vars` (not the deployed env's runtime
|
|
35
|
+
vars), installs dependencies for node builds, and uploads `artifacts`
|
|
36
|
+
also on failure.
|
|
37
|
+
|
|
30
38
|
`audit` additionally takes `level`: `"info" | "low" | "moderate" | "high" |
|
|
31
39
|
"critical"` (default `"critical"`) — the lowest severity that fails the job,
|
|
32
40
|
translated to the package manager's own flag (`pnpm audit --audit-level`,
|
|
@@ -81,5 +89,5 @@ defaulted `buildCommand: "yarn build-storybook --quiet -o ./dist"`.
|
|
|
81
89
|
Top-level `builds: Record<string, WorkspaceBuildConfig>`. Only
|
|
82
90
|
`type: "node"` is supported.
|
|
83
91
|
|
|
84
|
-
- Node workspace build: `dir?`, `buildCommand?` (default `<pm> build`), `dockerDefaults?: { yarnRebuildEnabled }`, plus shared `lint?` (default `{ command: "<pm> lint" }`), `test?` (default `{ command: "<pm> test" }`), `audit?`, `runnerVariables?`, `artifactsReports?`, `jobImage?`, `jobTags?`, `cache?` (`<pm>` = `yarn`/`pnpm` per detection).
|
|
85
|
-
- A component references it via `build: { from: "<name>", docker?, startCommand?, artifactsPaths?, artifactsExcludePaths?, cache? }` — the per-component overrides layer on top of the shared build.
|
|
92
|
+
- Node workspace build: `dir?`, `buildCommand?` (default `<pm> build`), `dockerDefaults?: { yarnRebuildEnabled }`, plus shared `lint?` (default `{ command: "<pm> lint" }`), `test?` (default `{ command: "<pm> test" }`), `audit?`, `postBuildTests?` (block the deploys of all its components), `runnerVariables?`, `artifactsReports?`, `jobImage?`, `jobTags?`, `cache?` (`<pm>` = `yarn`/`pnpm` per detection).
|
|
93
|
+
- A component references it via `build: { from: "<name>", docker?, startCommand?, artifactsPaths?, artifactsExcludePaths?, cache?, postBuildTests? }` — the per-component overrides layer on top of the shared build.
|
|
@@ -86,6 +86,19 @@ pin the review apps of a merge request (disable their auto-stop) by adding the p
|
|
|
86
86
|
- `mr` (positional): merge request IID (defaults to the open MR of the current branch)
|
|
87
87
|
- `--pipeline`: trigger a merge-request pipeline so the pin takes effect immediately
|
|
88
88
|
|
|
89
|
+
## `catladder mr review-app-off [mr]`
|
|
90
|
+
|
|
91
|
+
stop deploying the review apps of a merge request: switches the reviewApps label off (opt-in: removes it, opt-out: adds the skip label). Running review apps stay until the MR closes or they auto-stop
|
|
92
|
+
|
|
93
|
+
- `mr` (positional): merge request IID (defaults to the open MR of the current branch)
|
|
94
|
+
|
|
95
|
+
## `catladder mr review-app-on [mr]`
|
|
96
|
+
|
|
97
|
+
deploy the review apps of a merge request: switches the reviewApps label on (opt-in: adds it, opt-out: removes the skip label) and triggers a pipeline, since gitlab doesn't start one for label changes
|
|
98
|
+
|
|
99
|
+
- `mr` (positional): merge request IID (defaults to the open MR of the current branch)
|
|
100
|
+
- `--pipeline`: trigger a merge-request pipeline so the review apps deploy now
|
|
101
|
+
|
|
89
102
|
## `catladder mr unpin [mr]`
|
|
90
103
|
|
|
91
104
|
unpin the review apps of a merge request — the auto-stop timer re-arms with the next deploy
|
|
@@ -104,6 +104,10 @@ Key concepts:
|
|
|
104
104
|
affects both). The object form separates the axes:
|
|
105
105
|
`inherit: { config: "dev" }` inherits config only,
|
|
106
106
|
`inherit: { config: "dev", secrets: "dev" }` both.
|
|
107
|
+
- **Review apps**: top-level `reviewApps: { deploy, label, skipLabel,
|
|
108
|
+
drafts }` decides whether merge/pull requests deploy their review
|
|
109
|
+
apps — every MR/PR (default), opt-in or opt-out by label, or on
|
|
110
|
+
request; and what drafts run. See the `catladder-pipelines` skill.
|
|
107
111
|
- **Pipelines**: `pipelines: { gitlab: true, github: true }` selects
|
|
108
112
|
which CI systems get generated files. Options objects instead of
|
|
109
113
|
`true` allow per-pipeline settings (e.g. `runnerVariables`,
|
|
@@ -46,6 +46,12 @@ is `auto`.** Set per component or per environment (`env.<name>.deploy`).
|
|
|
46
46
|
`waitFor: ["otherComponent"]` (experimental) makes a deploy wait for
|
|
47
47
|
another component to deploy first.
|
|
48
48
|
|
|
49
|
+
Whether merge/pull requests deploy review apps at all (opt-in/opt-out
|
|
50
|
+
by label, drafts, deploy on request for all components at once) is the
|
|
51
|
+
project-wide top-level `reviewApps` config — see the
|
|
52
|
+
`catladder-pipelines` skill. With it set, per-component `when` of the
|
|
53
|
+
review env is ignored.
|
|
54
|
+
|
|
49
55
|
## Environment lifetimes
|
|
50
56
|
|
|
51
57
|
Review apps auto-stop after 1 week, dev environments after 4 weeks
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: catladder-pipelines
|
|
3
|
-
description: Understanding and debugging the CI/CD pipelines catladder generates (GitLab CI and GitHub Actions) — pipeline triggers, stages, environments, caching, job images, releases, and infrastructure drift. Use when investigating failing CI jobs, when asked why/when a job runs, when changing caching or job behavior, when deployments misbehave, or when a review app stopped/expired or should be kept alive (pinning). Triggers on "pipeline", "CI job", "gitlab-ci", "workflow", "deploy failed", "cache", "release", "auto-stop", "review app stopped", "pin review app", "keep review app".
|
|
3
|
+
description: Understanding and debugging the CI/CD pipelines catladder generates (GitLab CI and GitHub Actions) — pipeline triggers, stages, environments, caching, job images, releases, and infrastructure drift. Use when investigating failing CI jobs, when asked why/when a job runs, when changing caching or job behavior, when deployments misbehave, when a review app should (not) be deployed for a merge/pull request (opt-in/opt-out labels, drafts, deploy on request), or when a review app stopped/expired or should be kept alive (pinning). Triggers on "pipeline", "CI job", "gitlab-ci", "workflow", "deploy failed", "cache", "release", "auto-stop", "review app stopped", "pin review app", "keep review app", "deploy review app", "review app label", "skip review app", "draft PR", "reviewApps".
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# How catladder pipelines work
|
|
@@ -46,8 +46,9 @@ review app`); the same workflow can be dispatched with a PR number to
|
|
|
46
46
|
tear one down while the pull request is still open (gitlab runs these as manual jobs inside the pipeline
|
|
47
47
|
instead).
|
|
48
48
|
|
|
49
|
-
Stages: setup → test → build →
|
|
50
|
-
|
|
49
|
+
Stages: setup → test → build → post-build (`postBuildTests` against
|
|
50
|
+
the build output, block the deploy) → deploy → verify (post-deploy
|
|
51
|
+
checks), plus stop jobs for review-app teardown.
|
|
51
52
|
|
|
52
53
|
## Superseded pipelines are cancelled
|
|
53
54
|
|
|
@@ -81,6 +82,84 @@ started keeps _itself_ alive — under gitlab's own default
|
|
|
81
82
|
(`conservative`, which catladder overrides) it would shield the whole
|
|
82
83
|
pipeline from cancellation.
|
|
83
84
|
|
|
85
|
+
## When review apps deploy (`reviewApps`)
|
|
86
|
+
|
|
87
|
+
By default every merge/pull request deploys its review apps. Projects
|
|
88
|
+
with many MRs/PRs (e.g. opened by agents) can put the review delivery
|
|
89
|
+
chains — docker image → deploy → verify, for all components — behind
|
|
90
|
+
ONE switch per MR/PR with the top-level `reviewApps` config. Tests,
|
|
91
|
+
lint and audit always run; only the delivery waits.
|
|
92
|
+
|
|
93
|
+
```ts
|
|
94
|
+
reviewApps: {
|
|
95
|
+
deploy: "optIn", // auto (default) | manual | optIn | optOut
|
|
96
|
+
// label: "catladder:review-app", // optIn label (default)
|
|
97
|
+
// skipLabel: "catladder:no-review-app", // optOut label (default)
|
|
98
|
+
drafts: "checksOnly", // likeReady (default) | checksOnly (no review apps) | skip (no pipeline)
|
|
99
|
+
},
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
- `optIn`: deploys only while the MR/PR carries `label`.
|
|
103
|
+
- `optOut`: deploys unless it carries `skipLabel`.
|
|
104
|
+
- `manual`: never on its own — only on request.
|
|
105
|
+
- `drafts: "checksOnly"`: drafts run tests, lint and audit only, the review apps deploy once the
|
|
106
|
+
MR/PR is marked ready; `"skip"`: drafts run nothing.
|
|
107
|
+
- Per-component `deploy.when` of the review env is ignored then.
|
|
108
|
+
|
|
109
|
+
**GitHub** — like gitlab, the review workflow decides at its start
|
|
110
|
+
from the PR's labels and draft state: when the policy says deploy, the
|
|
111
|
+
chains run in the same run (one app build). Whatever changes later goes
|
|
112
|
+
through the `▶️ catladder deploy review` workflow
|
|
113
|
+
(`catladder-deploy-review.yml`, which rebuilds the app):
|
|
114
|
+
|
|
115
|
+
- when the review workflow is green but didn't deploy, its last job
|
|
116
|
+
(`▶️ trigger review deploy`) reads the PR's labels/draft state again
|
|
117
|
+
and dispatches the deploy if the policy now says so — a label set
|
|
118
|
+
while CI ran counts;
|
|
119
|
+
- switching the label on (opt-in: add `label`, opt-out: remove
|
|
120
|
+
`skipLabel`) deploys right away if the PR's `catladder ✅` is green;
|
|
121
|
+
switching it off stops the review apps (`🛑 catladder stop review
|
|
122
|
+
app`), and so does closing the PR — the stop first waits for a
|
|
123
|
+
review run of the PR that may still be deploying (on close it
|
|
124
|
+
cancels it), so a late deploy can't outlive the teardown;
|
|
125
|
+
- on request, any time (agents included):
|
|
126
|
+
`gh workflow run catladder-deploy-review.yml --ref <pr-branch> -f pr=<number>`
|
|
127
|
+
— explicit requests always deploy, but need the PR open and its CI
|
|
128
|
+
green (the run reuses the green CI instead of re-running tests);
|
|
129
|
+
- merge gates wait for **`catladder review app ✅`** (stable name,
|
|
130
|
+
independent of the components), the last job of whichever run
|
|
131
|
+
deploys. It also sets the commit status `catladder review app` on
|
|
132
|
+
the PR head (`success`/`failure`; the deploy workflow marks it
|
|
133
|
+
`pending` first) — dispatched runs are attached to the commit but not
|
|
134
|
+
listed on the pull request, the commit status is. A run that doesn't
|
|
135
|
+
deploy, or is cancelled (superseded, stopped), reports nothing — a
|
|
136
|
+
gate must treat a missing or `pending` status on the current head as
|
|
137
|
+
"wait". In the review run a skipped chain doesn't
|
|
138
|
+
fail `catladder ✅`, a failed one does;
|
|
139
|
+
- `gh pr edit <number> --add-label catladder:review-app` is the
|
|
140
|
+
agent-friendly opt-in. Labels set with the workflow's own
|
|
141
|
+
`GITHUB_TOKEN` (from inside a workflow) trigger nothing — use a user
|
|
142
|
+
or app token;
|
|
143
|
+
- the dispatch only works once the workflow exists on the default
|
|
144
|
+
branch (github rule) — the PR introducing `reviewApps` can't dispatch
|
|
145
|
+
yet.
|
|
146
|
+
|
|
147
|
+
A single component with `env.review.deploy.when: "manual"` (and no
|
|
148
|
+
`reviewApps`) uses the same workflow for just that component, without
|
|
149
|
+
the automatic trigger.
|
|
150
|
+
|
|
151
|
+
**GitLab** — a `🚀 deploy review` job in the MR pipeline is the
|
|
152
|
+
switch: the docker and deploy jobs of all components `need` it. The
|
|
153
|
+
policy decides whether it starts on its own (label set / opt-out not
|
|
154
|
+
set) or waits as a manual job; playing it any time deploys (early
|
|
155
|
+
clicks wait for builds and tests). It has `allow_failure: true`, so an
|
|
156
|
+
unplayed switch leaves the pipeline green. Label changes don't start
|
|
157
|
+
a pipeline on gitlab — use `yarn catladder mr review-app-on` (sets the
|
|
158
|
+
label and triggers a pipeline) / `mr review-app-off`. Drafts are
|
|
159
|
+
detected by their title prefix (`Draft:`, `[Draft]`, `(Draft)`); with
|
|
160
|
+
`drafts: "skip"` marking an MR ready starts no pipeline, the next push
|
|
161
|
+
does.
|
|
162
|
+
|
|
84
163
|
## Review-app auto-stop and pinning (GitLab)
|
|
85
164
|
|
|
86
165
|
GitLab review environments stop automatically after 1 week, dev
|
|
@@ -151,6 +230,21 @@ pipelines: { github: { repository: "AcmeCorp/Nautilus" } },
|
|
|
151
230
|
`yarn catladder project doctor` reports a mixed-case repository whose
|
|
152
231
|
generated workflows still carry the expression.
|
|
153
232
|
|
|
233
|
+
### Artifacts between jobs (GitHub)
|
|
234
|
+
|
|
235
|
+
A job's `artifacts.paths` are handed to the jobs that need them as one
|
|
236
|
+
tar archive (`catladder-artifacts-<job-id>.tar`): an "Archive
|
|
237
|
+
artifacts" step tars them after the job, `upload-artifact` uploads the
|
|
238
|
+
archive under the job id, and the consumers get a matching "Extract
|
|
239
|
+
artifacts" step after `download-artifact`. The tar keeps symlinks, file
|
|
240
|
+
modes and repo-relative paths, as GitLab artifacts do. Plain
|
|
241
|
+
`upload-artifact` loses them, which breaks Next.js/Turbopack builds in
|
|
242
|
+
pnpm workspaces: `.next/node_modules/<pkg>-<hash>` are symlinks into
|
|
243
|
+
the pnpm store, and as copied directories they fail at runtime with
|
|
244
|
+
`ERR_MODULE_NOT_FOUND`. If a deployed app shows that error, check that
|
|
245
|
+
the committed workflows contain the archive steps and regenerate if
|
|
246
|
+
they don't.
|
|
247
|
+
|
|
154
248
|
## Caching
|
|
155
249
|
|
|
156
250
|
Cache configuration is generated per build type. **yarn** node builds
|
|
@@ -16,6 +16,8 @@ const aggregateCheckJob_1 = require("./aggregateCheckJob");
|
|
|
16
16
|
const shippedCatci_1 = require("../../catci/shippedCatci");
|
|
17
17
|
const githubReleaseJobs_1 = require("./githubReleaseJobs");
|
|
18
18
|
const scriptFiles_1 = require("./scriptFiles");
|
|
19
|
+
const reviewApps_1 = require("../../reviewApps");
|
|
20
|
+
const reviewDeployWorkflow_1 = require("./reviewDeployWorkflow");
|
|
19
21
|
const WORKFLOWS_FOLDER = ".github/workflows";
|
|
20
22
|
/**
|
|
21
23
|
* generated workflow files are prefixed so that cleanup never touches
|
|
@@ -111,6 +113,7 @@ class GithubBackend {
|
|
|
111
113
|
...(0, ciVariables_1.getGithubInjectedWorkflowEnv)(images.registryImageRef()),
|
|
112
114
|
...(0, index_1.getPipelineOptions)(config, this.type).runnerVariables,
|
|
113
115
|
};
|
|
116
|
+
const reviewApps = (0, reviewApps_1.getReviewAppsConfig)(config);
|
|
114
117
|
const reviewStopJobs = {};
|
|
115
118
|
// jobs routed to the per-kind workflow_dispatch workflows (deploy /
|
|
116
119
|
// stop / rollback). A manual job and its build closure live there
|
|
@@ -153,6 +156,39 @@ class GithubBackend {
|
|
|
153
156
|
triggerJobs.delete(id);
|
|
154
157
|
}
|
|
155
158
|
}
|
|
159
|
+
// review delivery chains behind the per-PR deploy switch move to
|
|
160
|
+
// their own workflow (reviewApps config, or manual review deploys)
|
|
161
|
+
// When the label/draft policy already decides at the start of the
|
|
162
|
+
// review run, the chains stay in it behind that condition (one
|
|
163
|
+
// run, one app build); the review deploy workflow handles whatever
|
|
164
|
+
// changes later. Manual review deploys only live there.
|
|
165
|
+
let inRunDeliveryIds = [];
|
|
166
|
+
const inRunCondition = (0, reviewApps_1.isReviewDeployGated)(reviewApps)
|
|
167
|
+
? (0, reviewDeployWorkflow_1.getInRunDeployCondition)(reviewApps)
|
|
168
|
+
: undefined;
|
|
169
|
+
if (trigger === "mr") {
|
|
170
|
+
const deliveryIds = (0, reviewDeployWorkflow_1.getGatedReviewDeliveryJobIds)(triggerJobs, reviewApps);
|
|
171
|
+
if (deliveryIds.length > 0) {
|
|
172
|
+
workflows[reviewDeployWorkflow_1.REVIEW_DEPLOY_WORKFLOW_FILE] = (0, reviewDeployWorkflow_1.makeReviewDeployWorkflow)({
|
|
173
|
+
deliveryIds,
|
|
174
|
+
triggerJobs,
|
|
175
|
+
reviewApps,
|
|
176
|
+
images,
|
|
177
|
+
workflowEnv,
|
|
178
|
+
permissions: workflowPermissions(images).permissions,
|
|
179
|
+
});
|
|
180
|
+
if (inRunCondition) {
|
|
181
|
+
inRunDeliveryIds = deliveryIds;
|
|
182
|
+
for (const id of deliveryIds) {
|
|
183
|
+
const entry = triggerJobs.get(id);
|
|
184
|
+
entry.githubJob = (0, reviewDeployWorkflow_1.withInRunCondition)(entry.githubJob, inRunCondition);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
deliveryIds.forEach((id) => triggerJobs.delete(id));
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
156
192
|
// leaf manual jobs: an explicit manual gate (e.g. a prod deploy) or
|
|
157
193
|
// a stop/rollback task with no automatic trigger. Each becomes a
|
|
158
194
|
// dispatch choice.
|
|
@@ -256,7 +292,7 @@ class GithubBackend {
|
|
|
256
292
|
}
|
|
257
293
|
if (Object.keys(jobs).length > 0) {
|
|
258
294
|
const workflowJobs = { ...(0, ensureImageJobs_1.makeEnsureImageGithubJobs)(images), ...jobs };
|
|
259
|
-
|
|
295
|
+
const workflow = {
|
|
260
296
|
...getTriggerWorkflow(trigger),
|
|
261
297
|
...workflowPermissions(images),
|
|
262
298
|
env: workflowEnv,
|
|
@@ -268,13 +304,30 @@ class GithubBackend {
|
|
|
268
304
|
// required. Added at finalization so its needs cover the
|
|
269
305
|
// image-build jobs too.
|
|
270
306
|
jobs: trigger === "mr"
|
|
271
|
-
? {
|
|
307
|
+
? {
|
|
308
|
+
...workflowJobs,
|
|
309
|
+
...(0, aggregateCheckJob_1.makeAggregateCheckJob)(workflowJobs, inRunDeliveryIds),
|
|
310
|
+
// the stable review app result of an in-run deploy
|
|
311
|
+
...(inRunCondition && inRunDeliveryIds.length > 0
|
|
312
|
+
? (0, reviewDeployWorkflow_1.makeReviewAppAggregateJob)(inRunDeliveryIds, inRunCondition)
|
|
313
|
+
: {}),
|
|
314
|
+
// once green, hand over to the review deploy workflow
|
|
315
|
+
// when the PR deploys but this run didn't
|
|
316
|
+
...(workflows[reviewDeployWorkflow_1.REVIEW_DEPLOY_WORKFLOW_FILE] &&
|
|
317
|
+
(0, reviewApps_1.isReviewDeployGated)(reviewApps)
|
|
318
|
+
? (0, reviewDeployWorkflow_1.makeReviewDeployTriggerJob)(reviewApps, inRunCondition)
|
|
319
|
+
: {}),
|
|
320
|
+
}
|
|
272
321
|
: workflowJobs,
|
|
273
322
|
};
|
|
323
|
+
workflows[`${GENERATED_FILE_PREFIX}${workflowFileName(trigger)}`] =
|
|
324
|
+
trigger === "mr" && reviewApps.drafts === "skip"
|
|
325
|
+
? (0, reviewDeployWorkflow_1.withDraftsSkipped)(workflow)
|
|
326
|
+
: workflow;
|
|
274
327
|
}
|
|
275
328
|
}
|
|
276
329
|
if (Object.keys(reviewStopJobs).length > 0) {
|
|
277
|
-
|
|
330
|
+
const reviewStopWorkflow = {
|
|
278
331
|
name: "🛑 catladder stop review app",
|
|
279
332
|
on: {
|
|
280
333
|
pull_request: { types: ["closed"] },
|
|
@@ -301,6 +354,10 @@ class GithubBackend {
|
|
|
301
354
|
},
|
|
302
355
|
jobs: { ...(0, ensureImageJobs_1.makeEnsureImageGithubJobs)(images), ...reviewStopJobs },
|
|
303
356
|
};
|
|
357
|
+
workflows[`${GENERATED_FILE_PREFIX}review-stop.yml`] = workflows[reviewDeployWorkflow_1.REVIEW_DEPLOY_WORKFLOW_FILE]
|
|
358
|
+
? (0, reviewDeployWorkflow_1.withReviewStopSwitch)(reviewStopWorkflow, reviewApps, (0, reviewApps_1.isReviewDeployGated)(reviewApps) &&
|
|
359
|
+
(0, reviewDeployWorkflow_1.getInRunDeployCondition)(reviewApps) !== undefined)
|
|
360
|
+
: reviewStopWorkflow;
|
|
304
361
|
}
|
|
305
362
|
for (const [kind, bucket] of Object.entries(manualKindBuckets)) {
|
|
306
363
|
if (Object.keys(bucket.jobs).length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GithubBackend.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/github/GithubBackend.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GithubBackend.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/github/GithubBackend.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,4 +23,4 @@ export declare const AGGREGATE_CHECK_JOB_NAME = "catladder \u2705";
|
|
|
23
23
|
* `success` to `needs` even when red, so they stay non-blocking here
|
|
24
24
|
* by the same mechanism that keeps their workflow green.
|
|
25
25
|
*/
|
|
26
|
-
export declare const makeAggregateCheckJob: (reviewJobs: Record<string, GithubJob
|
|
26
|
+
export declare const makeAggregateCheckJob: (reviewJobs: Record<string, GithubJob>, skippable?: string[]) => Record<string, GithubJob>;
|
|
@@ -25,7 +25,12 @@ exports.AGGREGATE_CHECK_JOB_NAME = "catladder ✅";
|
|
|
25
25
|
* `success` to `needs` even when red, so they stay non-blocking here
|
|
26
26
|
* by the same mechanism that keeps their workflow green.
|
|
27
27
|
*/
|
|
28
|
-
const makeAggregateCheckJob = (reviewJobs
|
|
28
|
+
const makeAggregateCheckJob = (reviewJobs,
|
|
29
|
+
/**
|
|
30
|
+
* jobs that may be skipped on purpose (review delivery chains behind
|
|
31
|
+
* the reviewApps switch) — their skip is no failure, their failure is
|
|
32
|
+
*/
|
|
33
|
+
skippable = []) => ({
|
|
29
34
|
[exports.AGGREGATE_CHECK_JOB_ID]: {
|
|
30
35
|
name: exports.AGGREGATE_CHECK_JOB_NAME,
|
|
31
36
|
"runs-on": "ubuntu-latest",
|
|
@@ -36,13 +41,22 @@ const makeAggregateCheckJob = (reviewJobs) => ({
|
|
|
36
41
|
name: exports.AGGREGATE_CHECK_JOB_NAME,
|
|
37
42
|
// the needs context only interpolates inside the workflow file,
|
|
38
43
|
// so this script stays inline
|
|
39
|
-
run:
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
run: (skippable.length === 0
|
|
45
|
+
? [
|
|
46
|
+
`results='\${{ toJSON(needs) }}'`,
|
|
47
|
+
`echo "$results"`,
|
|
48
|
+
`if echo "$results" | grep -qE '"result": "(failure|cancelled|skipped)"'; then`,
|
|
49
|
+
` echo "a required job did not succeed"; exit 1`,
|
|
50
|
+
`fi`,
|
|
51
|
+
]
|
|
52
|
+
: [
|
|
53
|
+
`results='\${{ toJSON(needs) }}'`,
|
|
54
|
+
`echo "$results"`,
|
|
55
|
+
`failed=$(echo "$results" | jq -r --arg skippable ' ${[...skippable].sort().join(" ")} ' 'to_entries[] | .key as $job | select(.value.result == "failure" or .value.result == "cancelled" or (.value.result == "skipped" and ($skippable | contains(" " + $job + " ") | not))) | $job')`,
|
|
56
|
+
`if [ -n "$failed" ]; then`,
|
|
57
|
+
` echo "required jobs did not succeed: $failed"; exit 1`,
|
|
58
|
+
`fi`,
|
|
59
|
+
]).join("\n"),
|
|
46
60
|
shell: "bash",
|
|
47
61
|
},
|
|
48
62
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregateCheckJob.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/github/aggregateCheckJob.ts"],"names":[],"mappings":";;;AAEa,QAAA,sBAAsB,GAAG,cAAc,CAAC;AACxC,QAAA,wBAAwB,GAAG,aAAa,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACI,MAAM,qBAAqB,GAAG,CACnC,UAAqC,
|
|
1
|
+
{"version":3,"file":"aggregateCheckJob.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/github/aggregateCheckJob.ts"],"names":[],"mappings":";;;AAEa,QAAA,sBAAsB,GAAG,cAAc,CAAC;AACxC,QAAA,wBAAwB,GAAG,aAAa,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACI,MAAM,qBAAqB,GAAG,CACnC,UAAqC;AACrC;;;GAGG;AACH,YAAsB,EAAE,EACG,EAAE,CAAC,CAAC;IAC/B,CAAC,8BAAsB,CAAC,EAAE;QACxB,IAAI,EAAE,gCAAwB;QAC9B,SAAS,EAAE,eAAe;QAC1B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE;QACrC,EAAE,EAAE,UAAU;QACd,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,gCAAwB;gBAC9B,gEAAgE;gBAChE,8BAA8B;gBAC9B,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;oBAC1B,CAAC,CAAC;wBACE,iCAAiC;wBACjC,iBAAiB;wBACjB,+EAA+E;wBAC/E,iDAAiD;wBACjD,IAAI;qBACL;oBACH,CAAC,CAAC;wBACE,iCAAiC;wBACjC,iBAAiB;wBACjB,sDAAsD,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,mMAAmM;wBACxR,2BAA2B;wBAC3B,yDAAyD;wBACzD,IAAI;qBACL,CACJ,CAAC,IAAI,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,MAAM;aACd;SACF;KACF;CACF,CAAC,CAAC;AAvCU,QAAA,qBAAqB,yBAuC/B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { GithubStep } from "../../types/github-types";
|
|
2
|
+
/**
|
|
3
|
+
* Artifacts are handed between github jobs as ONE tar archive instead
|
|
4
|
+
* of letting upload-artifact walk the paths itself.
|
|
5
|
+
*
|
|
6
|
+
* upload-artifact does not preserve symlinks (it uploads the target's
|
|
7
|
+
* content) nor file modes, and it strips the paths' common ancestor.
|
|
8
|
+
* Gitlab artifacts keep all of that, and builds rely on it: next.js
|
|
9
|
+
* with turbopack writes `.next/node_modules/<pkg>-<hash>` as relative
|
|
10
|
+
* symlinks into the pnpm virtual store. Copied as plain directories,
|
|
11
|
+
* node resolves the package's own dependencies from the wrong place
|
|
12
|
+
* and the app crashes with ERR_MODULE_NOT_FOUND at runtime. tar keeps
|
|
13
|
+
* symlinks, modes and the paths relative to the repo root (github's
|
|
14
|
+
* own docs recommend it for exactly this).
|
|
15
|
+
*
|
|
16
|
+
* The archive is not hidden (upload-artifact skips hidden files) and
|
|
17
|
+
* lives in the workspace, the one path run steps and actions agree on
|
|
18
|
+
* inside job containers too.
|
|
19
|
+
*/
|
|
20
|
+
export declare const artifactArchiveFile: (jobId: string) => string;
|
|
21
|
+
export declare const createArtifactUploadSteps: (jobId: string, paths: string[], condition?: string) => GithubStep[];
|
|
22
|
+
export declare const createArtifactDownloadSteps: (providerIds: string[]) => GithubStep[];
|