@catladder/cli 0.0.0-next-d71e41ba → 0.0.0-next-dccc0a36
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/scripts/generateCliSkillReference.js +3 -2
- package/dist/apps/cli/src/scripts/generateCliSkillReference.js.map +1 -1
- package/dist/bundles/catenv/index.js +790 -272
- package/dist/bundles/cli/index.js +790 -272
- package/dist/bundles/runner-images/docker-build/scripts/ensureNodeDockerfile +8 -1
- package/dist/bundles/runner-images/jobs-default/Dockerfile +4 -0
- package/dist/bundles/skills/catladder-builds/SKILL.md +68 -5
- package/dist/bundles/skills/catladder-builds/references/build-types.md +8 -6
- package/dist/bundles/skills/catladder-cli/references/commands.md +3 -2
- package/dist/bundles/skills/catladder-config/SKILL.md +5 -0
- package/dist/bundles/skills/catladder-deploys/SKILL.md +1 -1
- package/dist/bundles/skills/catladder-deploys/references/deploy-types.md +2 -2
- package/dist/bundles/skills/catladder-pipelines/SKILL.md +16 -4
- package/dist/packages/pipeline/src/backends/github/GithubBackend.js +4 -4
- package/dist/packages/pipeline/src/backends/github/GithubBackend.js.map +1 -1
- package/dist/packages/pipeline/src/backends/gitlab/GitlabBackend.js +4 -4
- package/dist/packages/pipeline/src/backends/gitlab/GitlabBackend.js.map +1 -1
- package/dist/packages/pipeline/src/build/base/createAppBuildJob.js +2 -2
- package/dist/packages/pipeline/src/build/base/createAppBuildJob.js.map +1 -1
- package/dist/packages/pipeline/src/build/index.d.ts +3 -3
- package/dist/packages/pipeline/src/build/index.js +16 -11
- package/dist/packages/pipeline/src/build/index.js.map +1 -1
- package/dist/packages/pipeline/src/build/node/buildJob.js +49 -8
- package/dist/packages/pipeline/src/build/node/buildJob.js.map +1 -1
- package/dist/packages/pipeline/src/build/node/cache.d.ts +5 -0
- package/dist/packages/pipeline/src/build/node/cache.js +58 -19
- package/dist/packages/pipeline/src/build/node/cache.js.map +1 -1
- package/dist/packages/pipeline/src/build/node/meteor.js +9 -4
- package/dist/packages/pipeline/src/build/node/meteor.js.map +1 -1
- package/dist/packages/pipeline/src/build/node/packageManagerInstall.d.ts +14 -0
- package/dist/packages/pipeline/src/build/node/packageManagerInstall.js +145 -0
- package/dist/packages/pipeline/src/build/node/packageManagerInstall.js.map +1 -0
- package/dist/packages/pipeline/src/build/node/testJob.js +9 -11
- package/dist/packages/pipeline/src/build/node/testJob.js.map +1 -1
- package/dist/packages/pipeline/src/build/types.d.ts +6 -5
- package/dist/packages/pipeline/src/build/types.js.map +1 -1
- package/dist/packages/pipeline/src/context/createComponentContext.js +3 -2
- package/dist/packages/pipeline/src/context/createComponentContext.js.map +1 -1
- package/dist/packages/pipeline/src/context/createWorkspaceContext.js +3 -2
- package/dist/packages/pipeline/src/context/createWorkspaceContext.js.map +1 -1
- package/dist/packages/pipeline/src/customImages/hash.d.ts +9 -0
- package/dist/packages/pipeline/src/customImages/hash.js +41 -16
- package/dist/packages/pipeline/src/customImages/hash.js.map +1 -1
- package/dist/packages/pipeline/src/customImages/jobImagesPlan.d.ts +23 -5
- package/dist/packages/pipeline/src/customImages/jobImagesPlan.js +177 -43
- package/dist/packages/pipeline/src/customImages/jobImagesPlan.js.map +1 -1
- package/dist/packages/pipeline/src/customImages/projectImages.d.ts +67 -0
- package/dist/packages/pipeline/src/customImages/projectImages.js +9 -0
- package/dist/packages/pipeline/src/customImages/projectImages.js.map +1 -0
- package/dist/packages/pipeline/src/deploy/custom/deployJob.js +7 -6
- package/dist/packages/pipeline/src/deploy/custom/deployJob.js.map +1 -1
- package/dist/packages/pipeline/src/deploy/pages/deployJob.js +6 -4
- package/dist/packages/pipeline/src/deploy/pages/deployJob.js.map +1 -1
- package/dist/packages/pipeline/src/deploy/types/custom.d.ts +9 -3
- package/dist/packages/pipeline/src/deploy/types/index.d.ts +4 -4
- package/dist/packages/pipeline/src/deploy/types/pages.d.ts +9 -3
- 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/detectPackageManager.d.ts +18 -0
- package/dist/packages/pipeline/src/pipeline/detectPackageManager.js +76 -0
- package/dist/packages/pipeline/src/pipeline/detectPackageManager.js.map +1 -0
- package/dist/packages/pipeline/src/pipeline/packageManager.d.ts +1 -1
- package/dist/packages/pipeline/src/pipeline/packageManager.js +43 -9
- package/dist/packages/pipeline/src/pipeline/packageManager.js.map +1 -1
- package/dist/packages/pipeline/src/pipeline/pnpm/pnpmUtils.d.ts +14 -0
- package/dist/packages/pipeline/src/pipeline/pnpm/pnpmUtils.js +93 -0
- package/dist/packages/pipeline/src/pipeline/pnpm/pnpmUtils.js.map +1 -0
- package/dist/packages/pipeline/src/types/config.d.ts +16 -1
- package/dist/packages/pipeline/src/types/config.js.map +1 -1
- package/dist/packages/pipeline/src/types/context.d.ts +11 -3
- package/dist/packages/pipeline/src/types/context.js.map +1 -1
- package/dist/packages/pipeline/src/types/jobs.d.ts +2 -1
- package/dist/packages/pipeline/src/types/jobs.js.map +1 -1
- package/dist/packages/pipeline/src/verify/createVerifyJobs.js +5 -5
- package/dist/packages/pipeline/src/verify/createVerifyJobs.js.map +1 -1
- package/dist/runner-images/docker-build/scripts/ensureNodeDockerfile +8 -1
- package/dist/runner-images/jobs-default/Dockerfile +4 -0
- package/dist/skills/catladder-builds/SKILL.md +68 -5
- package/dist/skills/catladder-builds/references/build-types.md +8 -6
- package/dist/skills/catladder-cli/references/commands.md +3 -2
- package/dist/skills/catladder-config/SKILL.md +5 -0
- package/dist/skills/catladder-deploys/SKILL.md +1 -1
- package/dist/skills/catladder-deploys/references/deploy-types.md +2 -2
- package/dist/skills/catladder-pipelines/SKILL.md +16 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/scripts/generateCliSkillReference.ts +3 -2
- package/dist/packages/pipeline/src/build/node/yarn.d.ts +0 -8
- package/dist/packages/pipeline/src/build/node/yarn.js +0 -78
- package/dist/packages/pipeline/src/build/node/yarn.js.map +0 -1
|
@@ -35,10 +35,17 @@ FROM node:$NODE_VERSION-alpine
|
|
|
35
35
|
$DOCKERFILE_ADDITIONS
|
|
36
36
|
|
|
37
37
|
RUN apk add --no-cache git curl
|
|
38
|
-
|
|
38
|
+
# package-manager setup (e.g. installing pnpm globally) and the
|
|
39
|
+
# workspace-file copy run as root: pnpm ADDs a tar whose extracted
|
|
40
|
+
# parent dirs come out root-owned (ADD --chown only covers the files),
|
|
41
|
+
# so it needs a root chown before the node user can write node_modules.
|
|
42
|
+
# The actual install below still runs as the unprivileged node user.
|
|
43
|
+
$DOCKER_SETUP_PACKAGE_MANAGER
|
|
39
44
|
|
|
40
45
|
$DOCKER_COPY_WORKSPACE_FILES
|
|
41
46
|
|
|
47
|
+
USER node
|
|
48
|
+
|
|
42
49
|
WORKDIR /app/$APP_DIR
|
|
43
50
|
|
|
44
51
|
$DOCKER_COPY_AND_INSTALL_APP
|
|
@@ -9,6 +9,10 @@ RUN rm /bin/sh && \
|
|
|
9
9
|
# set high timeout for yarn, see https://github.com/dhis2/notes/issues/29
|
|
10
10
|
RUN yarn config set network-timeout 600000 -g
|
|
11
11
|
|
|
12
|
+
# pnpm for projects using it (pnpm self-switches to the version pinned
|
|
13
|
+
# in the project's packageManager field)
|
|
14
|
+
RUN npm install -g pnpm
|
|
15
|
+
|
|
12
16
|
# install nvm && some common node versions
|
|
13
17
|
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash && \
|
|
14
18
|
source /root/.nvm/nvm.sh && \
|
|
@@ -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, and shared workspace builds). Use when adding or changing a component's build, choosing a build type, wiring a Dockerfile/nginx image, tuning the build/test/lint jobs, or setting up a monorepo workspace build. Triggers on "build config", "buildCommand", "build type", "Dockerfile", "docker 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, 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".
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Component builds with catladder
|
|
@@ -28,11 +28,26 @@ components: {
|
|
|
28
28
|
Set `build: false` to disable building for a component (e.g. a
|
|
29
29
|
deploy-only or docker-tag component).
|
|
30
30
|
|
|
31
|
+
Node-family builds work with **yarn or pnpm**: catladder autodetects the
|
|
32
|
+
package manager (from the `packageManager` field in package.json or the
|
|
33
|
+
lockfile) and generates the matching install commands, caches and
|
|
34
|
+
default build/lint/test commands. Override with `packageManager:
|
|
35
|
+
"pnpm" | "yarn"` at the top level of `catladder.ts` if needed. The
|
|
36
|
+
`meteor` build type is yarn-only.
|
|
37
|
+
|
|
38
|
+
pnpm gotchas: dependency build scripts must be approved in
|
|
39
|
+
pnpm-workspace.yaml (`allowBuilds` map since pnpm 11,
|
|
40
|
+
`onlyBuiltDependencies` list on pnpm 10); pnpm runs the root
|
|
41
|
+
`prepare` script even during the production install in the docker
|
|
42
|
+
build — guard husky with `"prepare": "husky || true"`; `pnpm run`
|
|
43
|
+
prints a banner to stdout, so use `pnpm --silent run` in piped
|
|
44
|
+
commands.
|
|
45
|
+
|
|
31
46
|
## Build types
|
|
32
47
|
|
|
33
48
|
| Type | Use for | Notes |
|
|
34
49
|
|---|---|---|
|
|
35
|
-
| `node` | Node/JS apps (Next.js, Vite, plain node) | default
|
|
50
|
+
| `node` | Node/JS apps (Next.js, Vite, plain node) | default `<pm> build` + `<pm> start` (yarn or pnpm, autodetected); `docker` selects the runtime image |
|
|
36
51
|
| `rails` | Ruby on Rails apps | Cloud Native Buildpacks when there is no `Dockerfile`; Postgres test DB |
|
|
37
52
|
| `meteor` | Meteor apps | starts `node main.js` |
|
|
38
53
|
| `custom` | anything else | you provide the `jobImage` and `docker` config (both required) |
|
|
@@ -46,8 +61,9 @@ type: `build: { from: "web" }` (see workspace builds below).
|
|
|
46
61
|
- `buildCommand` — the build step (`string | string[] | null | false`;
|
|
47
62
|
`false`/`null` skips building).
|
|
48
63
|
- `startCommand` — how the app is started at runtime.
|
|
49
|
-
- `postInstall` — commands run after
|
|
50
|
-
e.g. for Yarn PnP where `package.json` postinstall
|
|
64
|
+
- `postInstall` — commands run after the package-manager install (node
|
|
65
|
+
family; needed e.g. for Yarn PnP where `package.json` postinstall
|
|
66
|
+
won't run).
|
|
51
67
|
- `lint` / `test` / `audit` — customize (`{ command, jobImage, … }`) or
|
|
52
68
|
set to `false` to disable that job.
|
|
53
69
|
- `artifactsPaths` / `artifactsExcludePaths` — extra build artifacts
|
|
@@ -55,11 +71,58 @@ type: `build: { from: "web" }` (see workspace builds below).
|
|
|
55
71
|
- `cache` — build caching (see the `catladder-pipelines` skill for the
|
|
56
72
|
caching model).
|
|
57
73
|
- `jobImage`, `jobTags`, `jobVars`, `runnerVariables` — the CI image,
|
|
58
|
-
runner tags, build-only env vars, and extra runner variables.
|
|
74
|
+
runner tags, build-only env vars, and extra runner variables. A
|
|
75
|
+
`jobImage` is a concrete image url or `{ image: "<name>" }`
|
|
76
|
+
referencing a project image (see below).
|
|
59
77
|
- `docker` — the image build strategy: a built-in
|
|
60
78
|
(`{ type: "nginx" | "node" | "meteor" }`) or
|
|
61
79
|
`{ type: "custom" }` (expects a `Dockerfile`).
|
|
62
80
|
|
|
81
|
+
## Project images (custom CI job images)
|
|
82
|
+
|
|
83
|
+
When a job needs a toolchain catladder doesn't ship (Java, Playwright,
|
|
84
|
+
…), declare a Docker image at the top level under `images` and reference
|
|
85
|
+
it in any `jobImage` field (build, `test.jobImage`, custom/pages deploy,
|
|
86
|
+
verify):
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
images: {
|
|
90
|
+
// (a) a directory in the repo (default context = the dir)
|
|
91
|
+
"java-build": {
|
|
92
|
+
dir: "docker/java-build", // contains the Dockerfile
|
|
93
|
+
buildArgs: { MAVEN_VERSION: "3.9.9" }, // optional, part of the content hash
|
|
94
|
+
hashExtraPaths: ["shared/settings.xml"], // optional extra hashed+watched files
|
|
95
|
+
},
|
|
96
|
+
// (b) inline (default context = repo root); materialized into
|
|
97
|
+
// .catladder-generated/images/project/<name>/Dockerfile
|
|
98
|
+
"db-tools": {
|
|
99
|
+
dockerfile: ["FROM alpine:3.21", "RUN apk add --no-cache postgresql17-client"],
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
components: {
|
|
103
|
+
api: {
|
|
104
|
+
build: { type: "custom", jobImage: { image: "java-build" }, docker: { type: "custom" } },
|
|
105
|
+
},
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
`dir` and `dockerfile` are mutually exclusive. `context` overrides the
|
|
110
|
+
build context (relative to the repo root) — needed when the image
|
|
111
|
+
`COPY`s files from outside its `dir`.
|
|
112
|
+
|
|
113
|
+
Catladder generates a `🐳 image <name>` job (setup stage) that builds
|
|
114
|
+
the image content-hashed into the project registry
|
|
115
|
+
(`…/job-images/<name>:<hash>`) and skips when it already exists — works
|
|
116
|
+
on GitLab and GitHub.
|
|
117
|
+
|
|
118
|
+
**The build context is not hashed** (it can be the whole repo) — only
|
|
119
|
+
the Dockerfile / `dir`, `buildArgs` and `hashExtraPaths` are. Files
|
|
120
|
+
pulled in via `COPY` that should trigger a rebuild belong in
|
|
121
|
+
`hashExtraPaths`.
|
|
122
|
+
|
|
123
|
+
Generation (`yarn catenv`) fails fast on an undeclared image name, a
|
|
124
|
+
missing `dir`, or a `dir` without a `Dockerfile`.
|
|
125
|
+
|
|
63
126
|
## Workspace builds (monorepos)
|
|
64
127
|
|
|
65
128
|
For a shared build across several components, declare it once at the top
|
|
@@ -10,7 +10,7 @@ generated pipeline files.
|
|
|
10
10
|
|---|---|---|
|
|
11
11
|
| `buildCommand` | `string \| string[] \| null \| false` | build step; `false`/`null` skips it |
|
|
12
12
|
| `startCommand` | `string` | runtime start command |
|
|
13
|
-
| `postInstall` | `string \| string[]` | runs after
|
|
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
15
|
| `artifactsPaths` | `string[]` | extra artifacts (`dist`, `.next` always included) |
|
|
16
16
|
| `artifactsExcludePaths` | `string[]` | artifact excludes |
|
|
@@ -19,7 +19,7 @@ generated pipeline files.
|
|
|
19
19
|
| `jobVars` | `EnvVars` | env vars only in build jobs |
|
|
20
20
|
| `runnerVariables` | `Record<string,string>` | extra runner vars (also for `services:`) |
|
|
21
21
|
| `jobTags` | `string[]` | runner tags |
|
|
22
|
-
| `jobImage` | `
|
|
22
|
+
| `jobImage` | `JobImageConfig` | CI image for the build: a concrete image or `{ image: "<name>" }` referencing a project image |
|
|
23
23
|
| `docker` | see below | the deployable image strategy |
|
|
24
24
|
|
|
25
25
|
`TestJobCustom` (for `lint`/`test`/`audit`): `command`, `jobImage`,
|
|
@@ -29,8 +29,9 @@ generated pipeline files.
|
|
|
29
29
|
## Per-type options & defaults
|
|
30
30
|
|
|
31
31
|
### `node`
|
|
32
|
-
-
|
|
33
|
-
-
|
|
32
|
+
- Works with yarn **and pnpm** — the package manager is autodetected (`packageManager` field / lockfile), overridable via top-level `packageManager: "pnpm" | "yarn"` in `catladder.ts`.
|
|
33
|
+
- `docker?` — built-in node image `{ type: "node", yarnRebuildEnabled?: boolean (default true, yarn berry only), additionsBegin?: string[], additionsEnd?: string[] }`, or a custom docker config.
|
|
34
|
+
- Defaults: `buildCommand: "<pm> build"`, `startCommand: "<pm> start"` (`yarn`/`pnpm` per detection), artifacts `["dist", ".next"]`, excludes `[".next/cache/**/*"]`.
|
|
34
35
|
|
|
35
36
|
### `rails`
|
|
36
37
|
- `test?.databaseImage?` — test DB container image (Postgres only; default `docker.io/postgres:latest`).
|
|
@@ -41,12 +42,13 @@ generated pipeline files.
|
|
|
41
42
|
- `buildVars?: Record<string, string | undefined>` — Bundler / Rails asset-precompile vars (`undefined` inherits from the component's env vars).
|
|
42
43
|
|
|
43
44
|
### `meteor`
|
|
45
|
+
- Yarn-only (meteor's bundler is yarn-based) — a pnpm project cannot use this build type.
|
|
44
46
|
- `installScripts?: boolean` — run `yarn install` inside the source folder in the image (only needed with custom image scripts).
|
|
45
47
|
- `docker?` — meteor built-in or custom. Default `startCommand: "node main.js"`.
|
|
46
48
|
|
|
47
49
|
### `custom`
|
|
48
50
|
- `type: "custom"` — **required**.
|
|
49
|
-
- `jobImage:
|
|
51
|
+
- `jobImage: JobImageConfig` — **required** CI image (concrete image or `{ image: "<name>" }` project-image ref).
|
|
50
52
|
- `docker: BuildConfigDocker` — **required** image build config.
|
|
51
53
|
- `jobServices?: Services` — services for lint/test/audit/build jobs.
|
|
52
54
|
- `lint?` / `test?` / `audit?: TestJobCustom` — disabled unless set.
|
|
@@ -68,5 +70,5 @@ defaulted `buildCommand: "yarn build-storybook --quiet -o ./dist"`.
|
|
|
68
70
|
Top-level `builds: Record<string, WorkspaceBuildConfig>`. Only
|
|
69
71
|
`type: "node"` is supported.
|
|
70
72
|
|
|
71
|
-
- Node workspace build: `dir?`, `buildCommand?` (default
|
|
73
|
+
- 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).
|
|
72
74
|
- A component references it via `build: { from: "<name>", docker?, startCommand?, artifactsPaths?, artifactsExcludePaths?, cache? }` — the per-component overrides layer on top of the shared build.
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
<!-- rendered from the command definitions by
|
|
4
4
|
apps/cli/src/scripts/generateCliSkillReference.ts — do not edit -->
|
|
5
5
|
|
|
6
|
-
All commands run non-interactively as `yarn catladder <command>
|
|
7
|
-
see SKILL.md for how to
|
|
6
|
+
All commands run non-interactively as `yarn catladder <command> ...`
|
|
7
|
+
(`pnpm catladder ...` in pnpm projects); see SKILL.md for how to
|
|
8
|
+
pass inputs.
|
|
8
9
|
|
|
9
10
|
## `catladder cloudsql restore-db`
|
|
10
11
|
|
|
@@ -64,6 +64,11 @@ Key concepts:
|
|
|
64
64
|
- **Pipelines**: `pipelines: { gitlab: true, github: true }` selects
|
|
65
65
|
which CI systems get generated files. Options objects instead of
|
|
66
66
|
`true` allow per-pipeline settings (e.g. `runnerVariables`).
|
|
67
|
+
- **Package manager**: yarn and pnpm are supported and autodetected
|
|
68
|
+
(from the `packageManager` field in package.json or the lockfile;
|
|
69
|
+
yarn is the fallback). `packageManager: "pnpm" | "yarn"` at the top
|
|
70
|
+
level overrides the detection. In pnpm projects, run the CLIs as
|
|
71
|
+
`pnpm catenv` / `pnpm catladder`.
|
|
67
72
|
|
|
68
73
|
## Common tasks
|
|
69
74
|
|
|
@@ -61,7 +61,7 @@ resources with `yarn catladder project setup`; detect drift with
|
|
|
61
61
|
- `type: "pages"` — **required**. Publishes a static site on gitlab pages (not yet supported on the github backend).
|
|
62
62
|
- `script: string[]` — **required**; produces the site.
|
|
63
63
|
- `publishDir?: string` — output directory relative to the repo root, default `"public"`.
|
|
64
|
-
- `
|
|
64
|
+
- `requiresInstall?: boolean` — run the package-manager install (yarn/pnpm) first (`requiresYarnInstall` is a deprecated alias).
|
|
65
65
|
- `jobImage?: GitlabJobImage`; also accepts `cache`.
|
|
66
66
|
- Review envs publish under an `mr-<iid>` path prefix (parallel deployments → MR previews; exposed as `$PAGES_PREFIX`); other envs publish at the root. The environment url is the published pages url.
|
|
67
67
|
- Defaults to `allowFailure: true`.
|
|
@@ -75,7 +75,7 @@ resources with `yarn catladder project setup`; detect drift with
|
|
|
75
75
|
- `type: "custom"` — **required**.
|
|
76
76
|
- `requiresDocker: boolean` — **required**; whether the deploy needs a built Docker image.
|
|
77
77
|
- `script: string[]` — **required**; the deploy script.
|
|
78
|
-
- `
|
|
78
|
+
- `requiresInstall?: boolean` — whether the script needs the package-manager install (`requiresYarnInstall` is a deprecated alias).
|
|
79
79
|
- `stopScript?: string[]` — script to stop/tear down the environment.
|
|
80
80
|
- `jobImage?: GitlabJobImage`.
|
|
81
81
|
- Also accepts `cache` (via `WithCacheConfig`).
|
|
@@ -29,17 +29,29 @@ plus stop jobs for review-app teardown.
|
|
|
29
29
|
|
|
30
30
|
## Job images and catci
|
|
31
31
|
|
|
32
|
-
Jobs run in catladder-provided images
|
|
33
|
-
|
|
34
|
-
project's own registry
|
|
32
|
+
Jobs run in catladder-provided images (`🐳 catladder image <name>` build
|
|
33
|
+
jobs). Their definitions are materialized into
|
|
34
|
+
`.catladder-generated/images/` and built in the project's own registry
|
|
35
|
+
under `catladder/` (content-hashed, rebuilt only on change).
|
|
35
36
|
`.catladder-generated/catci/` holds a small bundled CI companion used by
|
|
36
37
|
generated jobs (e.g. the release security audit) — all generated, never
|
|
37
38
|
edit.
|
|
38
39
|
|
|
40
|
+
Projects can declare their own job images under `images` in
|
|
41
|
+
`catladder.ts` (`🐳 image <name>` build jobs, pushed to `job-images/` in
|
|
42
|
+
the registry) and reference them in any `jobImage` field via
|
|
43
|
+
`{ image: "<name>" }` — see the `catladder-builds` skill. A declared
|
|
44
|
+
Dockerfile directory is used in place; an inline `dockerfile` is
|
|
45
|
+
materialized into `.catladder-generated/images/project/<name>/`. Either
|
|
46
|
+
way the build job is skipped when the content hash already exists in
|
|
47
|
+
the registry.
|
|
48
|
+
|
|
39
49
|
## Caching
|
|
40
50
|
|
|
41
51
|
Cache configuration is generated per build type; node builds cache
|
|
42
|
-
`node_modules` and the
|
|
52
|
+
`node_modules` and the package manager's download cache (the `.yarn`
|
|
53
|
+
zip cache, or for pnpm projects a project-local `.pnpm-store`). GitLab
|
|
54
|
+
uses mutable caches with
|
|
43
55
|
fallback keys (review branches fall back to the dev cache); GitHub uses
|
|
44
56
|
immutable lockfile-keyed caches where only the build job writes.
|
|
45
57
|
Caching behavior is changed via the build config in `catladder.ts`,
|
|
@@ -54,7 +54,7 @@ class GithubBackend {
|
|
|
54
54
|
await (0, promises_1.rm)(scriptFiles_1.GITHUB_SCRIPTS_FOLDER, { recursive: true, force: true });
|
|
55
55
|
}
|
|
56
56
|
async createFiles(config) {
|
|
57
|
-
const images = this.createImagesPlan();
|
|
57
|
+
const images = this.createImagesPlan(config);
|
|
58
58
|
const scripts = new scriptFiles_1.GithubScriptFiles();
|
|
59
59
|
const workflows = await this.createWorkflows(config, images, scripts);
|
|
60
60
|
return [
|
|
@@ -69,13 +69,13 @@ class GithubBackend {
|
|
|
69
69
|
...(0, shippedCatci_1.getCatciGeneratedFiles)(),
|
|
70
70
|
];
|
|
71
71
|
}
|
|
72
|
-
createImagesPlan() {
|
|
73
|
-
return new jobImagesPlan_1.JobImagesPlan(this.type);
|
|
72
|
+
createImagesPlan(config) {
|
|
73
|
+
return new jobImagesPlan_1.JobImagesPlan(this.type, config.images);
|
|
74
74
|
}
|
|
75
75
|
/**
|
|
76
76
|
* all workflows keyed by file name, mainly for testing purposes
|
|
77
77
|
*/
|
|
78
|
-
async createWorkflows(config, images = this.createImagesPlan(), scripts = new scriptFiles_1.GithubScriptFiles()) {
|
|
78
|
+
async createWorkflows(config, images = this.createImagesPlan(config), scripts = new scriptFiles_1.GithubScriptFiles()) {
|
|
79
79
|
var _a, _b, _c, _d;
|
|
80
80
|
const workflows = {};
|
|
81
81
|
// per-pipeline-type variables (pipelines.github.runnerVariables);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GithubBackend.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/github/GithubBackend.ts"],"names":[],"mappings":";;;AAAA,0CAAkD;AAClD,+BAA4B;AAC5B,gEAA6D;AAE7D,+CAA2D;AAI3D,+CAA6D;AAC7D,oCAA8C;AAC9C,yDAK4B;AAC5B,oEAAiE;AACjE,uDAAuE;AACvE,2DAAkE;AAClE,uCAAqC;AACrC,2DAG6B;AAC7B,+CAAyE;AAEzE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAE7C;;;GAGG;AACH,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAE3C,MAAM,iBAAiB,GAGnB;IACF,EAAE,EAAE;QACF,IAAI,EAAE,kBAAkB;QACxB,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,EAAE;QACtE,WAAW,EAAE;YACX,KAAK,EAAE,6CAA6C;YACpD,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,UAAU,EAAE;QACV,IAAI,EAAE,gBAAgB;QACtB,6CAA6C;QAC7C,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;KACrC;IACD,aAAa,EAAE;QACb,IAAI,EAAE,mBAAmB;QACzB,gEAAgE;QAChE,mEAAmE;QACnE,2DAA2D;QAC3D,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE;KACtD;CACF,CAAC;AAEF,MAAa,aAAa;IAA1B;QACW,SAAI,GAAG,QAAiB,CAAC;IA6OpC,CAAC;IA3OC,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAG,MAAM,IAAA,kBAAO,EAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAChE,MAAM,OAAO,CAAC,GAAG,CACf,OAAO;aACJ,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;aACxD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,iBAAM,EAAC,IAAA,WAAI,EAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,CACvD,CAAC;QACF,MAAM,IAAA,aAAE,EAAC,mCAAqB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"GithubBackend.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/github/GithubBackend.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ class GitlabBackend {
|
|
|
24
24
|
await (0, promises_1.rm)(this.generatedFolder, { force: true, recursive: true });
|
|
25
25
|
}
|
|
26
26
|
async createFiles(config) {
|
|
27
|
-
const images = this.createImagesPlan();
|
|
27
|
+
const images = this.createImagesPlan(config);
|
|
28
28
|
const includes = await this.createIncludes(config, images);
|
|
29
29
|
const mainFile = {
|
|
30
30
|
path: ".gitlab-ci.yml",
|
|
@@ -41,15 +41,15 @@ class GitlabBackend {
|
|
|
41
41
|
...(0, shippedCatci_1.getCatciGeneratedFiles)(),
|
|
42
42
|
];
|
|
43
43
|
}
|
|
44
|
-
createImagesPlan() {
|
|
45
|
-
return new jobImagesPlan_1.JobImagesPlan(this.type);
|
|
44
|
+
createImagesPlan(config) {
|
|
45
|
+
return new jobImagesPlan_1.JobImagesPlan(this.type, config.images);
|
|
46
46
|
}
|
|
47
47
|
/**
|
|
48
48
|
* the complete pipeline as one object (all includes merged into one),
|
|
49
49
|
* mainly for testing purposes
|
|
50
50
|
*/
|
|
51
51
|
async createCompletePipeline(config) {
|
|
52
|
-
const includes = await this.createIncludes(config, this.createImagesPlan());
|
|
52
|
+
const includes = await this.createIncludes(config, this.createImagesPlan(config));
|
|
53
53
|
return includes.reduce((acc, { content }) => {
|
|
54
54
|
return {
|
|
55
55
|
...acc,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitlabBackend.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/gitlab/GitlabBackend.ts"],"names":[],"mappings":";;;AAAA,0CAAiC;AACjC,uCAKqB;AAUrB,+CAA2D;AAC3D,gEAA6D;AAC7D,oEAAiE;AACjE,2DAAkE;AAElE,oCAA8C;AAE9C,yDAAsD;AACtD,iEAA0E;AAC1E,2DAA2D;AAC3D,2DAAwD;AACxD,mEAAgE;AAEhE,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AAE1D,MAAM,uBAAuB,GAAG,0BAA0B,GAAG,SAAS,CAAC;AAEvE,MAAa,aAAa;IAA1B;QACW,SAAI,GAAG,QAAiB,CAAC;QAEzB,oBAAe,GAAG,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"GitlabBackend.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/gitlab/GitlabBackend.ts"],"names":[],"mappings":";;;AAAA,0CAAiC;AACjC,uCAKqB;AAUrB,+CAA2D;AAC3D,gEAA6D;AAC7D,oEAAiE;AACjE,2DAAkE;AAElE,oCAA8C;AAE9C,yDAAsD;AACtD,iEAA0E;AAC1E,2DAA2D;AAC3D,2DAAwD;AACxD,mEAAgE;AAEhE,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AAE1D,MAAM,uBAAuB,GAAG,0BAA0B,GAAG,SAAS,CAAC;AAEvE,MAAa,aAAa;IAA1B;QACW,SAAI,GAAG,QAAiB,CAAC;QAEzB,oBAAe,GAAG,uBAAuB,CAAC;IA2MrD,CAAC;IAzMC,KAAK,CAAC,OAAO;QACX,MAAM,IAAA,aAAE,EAAC,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE3D,MAAM,QAAQ,GAAiB;YAC7B,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE;gBACP,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aACrC;SACF,CAAC;QAEF,OAAO;YACL,QAAQ;YACR,GAAG,QAAQ;YACX,6CAA6C;YAC7C,GAAG,MAAM,CAAC,iBAAiB,EAAE;YAC7B,gEAAgE;YAChE,GAAG,IAAA,qCAAsB,GAAE;SAC5B,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,MAAc;QACrC,OAAO,IAAI,6BAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,sBAAsB,CAC1B,MAAc;QAEd,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CACxC,MAAM,EACN,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAC9B,CAAC;QAEF,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YAC1C,OAAO;gBACL,GAAG,GAAG;gBACN,mCAAmC;gBACnC,GAAI,OAAmC,EAAE,qCAAqC;aAC/E,CAAC;QACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,MAAc,EACd,MAAqB;QAErB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,GACjE,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5C,sDAAsD;QACtD,qGAAqG;QACrG,mBAAmB;QACnB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CACxC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,KAAK,GAAG,CAAC,OAAO;gBACpB,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,IAAG,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChB,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC;YAED,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,IAAA,6CAAqB,EAAC,SAAS,CAAC,CAAC,CAAC,mDAAmD;YAC3G,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAkD,CACnD,CAAC;QAEF,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;YACrE,OAAO;gBACL,IAAI,EAAE,uBAAuB,GAAG,GAAG,GAAG,KAAK,GAAG,OAAO;gBACrD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAiB;YAChC,IAAI,EAAE,uBAAuB,GAAG,YAAY;YAC5C,OAAO,EAAE;gBACP,KAAK;gBACL,MAAM;gBACN,SAAS;gBACT,QAAQ;gBACR,GAAG,YAAY;aAChB;SACF,CAAC;QAEF,OAAO,CAAC,WAAW,EAAE,GAAG,iBAAiB,CAAC,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,MAAc,EACd,MAAqB;QAErB,MAAM,MAAM,GAAG,IAAA,qCAAiB,EAAC,MAAM,CAAC,CAAC;QAEzC,qEAAqE;QACrE,oEAAoE;QACpE,oBAAoB;QACpB,MAAM,WAAW,GAAG,IAAA,wCAAoB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEzD,kDAAkD;QAClD,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,GAAG,CACzC,8BAAqB,CAAC,GAAG,CACvB,KAAK,EAAE,OAAO,EAAE,EAAE,CAChB,MAAM,IAAA,mCAAgB,EACpB,MAAM,IAAA,6BAAa,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EACjE,MAAM,EACN,wBAAwB,CAAC,OAAO,CAAC,CAClC,CACJ,CACF,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAExB,MAAM,gBAAgB,GAAG,iBAAiB;aACvC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,OAAO,0CAAE,IAAI,MAAK,WAAW,CAAA,EAAA,CAAC,CAAC,uEAAuE;YACvH,iFAAiF;aAChF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;;YACb,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,MAAA,MAAM,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAM,CAAC,CAAC,OAA4B,CAAC,IAAI,CAClD,CAAC;YACF,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAM,CAAC,CAAC,OAA4B,CAAC,IAAI,CAClD,CAAC;YACF,OAAO,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC,CAAC,CAAC;QAEL,MAAM,gBAAgB,GAAG,iBAAiB;aACvC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,OAAO,0CAAE,IAAI,MAAK,WAAW,CAAA,EAAA,CAAC;YAC/C,uEAAuE;YACvE,iFAAiF;aAChF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACb,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAM,CAAC,CAAC,OAA4B,CAAC,IAAI,CAClD,CAAC;YACF,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAM,CAAC,CAAC,OAA4B,CAAC,IAAI,CAClD,CAAC;YACF,OAAO,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC,CAAC,CAAC;QAEL,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAC5C,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,OAAO,0CAAE,IAAI,MAAK,OAAO,CAAA,EAAA,CACnC,CAAC;QAEF,uCAAuC;QACvC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAC1B,CAAC;QAEF,MAAM,OAAO,GAAG;YACd,GAAG,kBAAkB;YACrB,GAAG,gBAAgB;YACnB,GAAG,gBAAgB;YACnB,GAAG,aAAa;SACjB,CAAC,MAAM,CACN,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;;YACpC,yDAAyD;YACzD,oIAAoI;YACpI,yEAAyE;YACzE,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACd,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG;oBAC1B,GAAG,CAAC,MAAA,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,mCAAI,EAAE,CAAC;oBACpC,GAAG,CAAC,MAAA,SAAS,CAAC,KAAK,mCAAI,EAAE,CAAC;iBAC3B,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;YACrC,CAAC;YAED,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAA6C,CAC9C,CAAC;QAEF,OAAO,IAAA,uDAAgC,EAAC;YACtC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,SAAS,CAAC;YAC9B,IAAI,EAAE;gBACJ,GAAG,OAAO;gBACV,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC;oBACrD,IAAI;oBACJ;wBACE,SAAS;wBACT,OAAO,EAAE,IAAI;qBACd;iBACF,CAAC,CACH;aACF;YACD,SAAS,EAAE;gBACT,GAAG,MAAM,CAAC,eAAe;gBACzB,iEAAiE;gBACjE,GAAG,IAAA,0BAAkB,EAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe;aACzD;SACF,CAAC,CAAC;IACL,CAAC;CACF;AA9MD,sCA8MC;AAED,SAAS,wBAAwB,CAAC,OAAwB;IACxD,kEAAkE;IAClE,uBAAuB;IACvB,wBAAwB;IACxB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,YAAY;YACf,OAAO;gBACL,mCAA2B;gBAC3B,kDAA0C;aAC3C,CAAC;QACJ,KAAK,IAAI;YACP,OAAO,CAAC,mCAA2B,EAAE,6BAAqB,CAAC,CAAC;QAC9D,KAAK,eAAe;YAClB,OAAO,CAAC,mCAA2B,EAAE,8BAAsB,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,mBAAmB,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -7,7 +7,7 @@ const jobs_1 = require("../../types/jobs");
|
|
|
7
7
|
const utils_1 = require("../../utils");
|
|
8
8
|
const removeUndefined_1 = require("../../utils/removeUndefined");
|
|
9
9
|
const createBuildJobArtifact_1 = require("../artifacts/createBuildJobArtifact");
|
|
10
|
-
const
|
|
10
|
+
const packageManagerInstall_1 = require("../node/packageManagerInstall");
|
|
11
11
|
const constants_1 = require("./constants");
|
|
12
12
|
const writeBuildInfo_1 = require("./writeBuildInfo");
|
|
13
13
|
const writeDotEnv_1 = require("./writeDotEnv");
|
|
@@ -47,7 +47,7 @@ class AppBuildJob extends jobs_1.CatladderJob {
|
|
|
47
47
|
.flatMap((c) => (0, writeDotEnv_1.writeDotEnv)(c))
|
|
48
48
|
: []),
|
|
49
49
|
...(context.type === "component" ? (0, writeBuildInfo_1.writeBuildInfo)(context) : []),
|
|
50
|
-
...(0,
|
|
50
|
+
...(0, packageManagerInstall_1.ensureNodeVersion)(context), // in pure node repos, we might want to have the nvmrc file in top-level
|
|
51
51
|
`cd ${context.build.dir}`,
|
|
52
52
|
...(0, utils_1.ensureArray)(script),
|
|
53
53
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAppBuildJob.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/build/base/createAppBuildJob.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAMtC,6BAAuC;AAGvC,2CAAgD;AAChD,uCAA0C;AAC1C,iEAA8D;AAC9D,gFAA8E;AAC9E,
|
|
1
|
+
{"version":3,"file":"createAppBuildJob.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/build/base/createAppBuildJob.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAMtC,6BAAuC;AAGvC,2CAAgD;AAChD,uCAA0C;AAC1C,iEAA8D;AAC9D,gFAA8E;AAC9E,yEAAkE;AAClE,2CAGqB;AACrB,qDAAkD;AAClD,+CAGuB;AAEvB,MAAa,WAAY,SAAQ,mBAAY;IAC3C,YACE,OAAoE,EACpE,EACE,MAAM,EACN,SAAS,EACT,eAAe,EACf,KAAK,EACL,GAAG,GAAG,EACgB,EACxB,SAAgC;;QAEhC,KAAK,CAAC;YACJ,IAAI,EAAE,8BAAkB;YACxB,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,CAAC,gBAAgB,CAAC;YAC5B,KAAK,EAAE,IAAA,kBAAc,EAAC,cAAc,CAAC;YACrC,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,KAAK;YACb,SAAS,EAAE;gBACT,GAAG,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC;gBACpB,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;oBAC9B,CAAC,CAAC;wBACE,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO;wBAC9B,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO;qBACjD;oBACH,CAAC,CAAC,EAAE,CAAC;aACR;YACD,eAAe,EAAE;gBACf,GAAG,2CAA+B;gBAClC,GAAG,CAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,EAAE,CAAC;gBAC1B,GAAG,CAAC,MAAA,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,mCAAI,EAAE,CAAC;aAChD;YAED,MAAM,EAAE;gBACN,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;oBAC9B,CAAC,CAAC,IAAA,kDAAoC,EAAC,OAAO,CAAC;wBAC7C,CAAC,CAAC,IAAA,yBAAW,EAAC,OAAO,CAAC;wBACtB,CAAC,CAAC,EAAE;oBACN,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;wBAC5B,CAAC,CAAC,OAAO,CAAC,UAAU;6BACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,kDAAoC,EAAC,CAAC,CAAC,CAAC;6BACtD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,yBAAW,EAAC,CAAC,CAAC,CAAC;wBACnC,CAAC,CAAC,EAAE,CAAC;gBACT,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAA,+BAAc,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,GAAG,IAAA,yCAAiB,EAAC,OAAO,CAAC,EAAE,wEAAwE;gBACvG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;gBACzB,GAAG,IAAA,mBAAW,EAAC,MAAM,CAAC;aACvB;YACD,SAAS;YACT,gEAAgE;YAChE,iEAAiE;YACjE,mEAAmE;YACnE,4CAA4C;YAC5C,GAAG,IAAA,qBAAS,EAAC,IAAA,iCAAe,EAAC,GAAG,CAAC,CAAC;SACnC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,OAAoE,EACpE,UAAiC;QAEjC,OAAO,IAAI,WAAW,CACpB,OAAO,EACP,UAAU,EACV,MAAM,IAAA,gDAAuB,EAAC,OAAO,CAAC,CACvC,CAAC;IACJ,CAAC;CACF;AArED,kCAqEC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ComponentContextWithBuild, WorkspaceContext } from "../types/context";
|
|
1
|
+
import type { ComponentContextWithBuild, PackageManagerType, WorkspaceContext } from "../types/context";
|
|
2
2
|
import type { EnvironmentContext } from "../types/environmentContext";
|
|
3
3
|
import type { CatladderJob } from "../types/jobs";
|
|
4
4
|
import type { BuildConfig, BuildConfigStandaloneType, WorkspaceBuildConfig } from "./types";
|
|
@@ -7,7 +7,7 @@ export * from "./types";
|
|
|
7
7
|
export type BuildTypes = {
|
|
8
8
|
[type in BuildConfigStandaloneType]: {
|
|
9
9
|
jobs: (context: ComponentContextWithBuild) => CatladderJob[] | Promise<CatladderJob[]>;
|
|
10
|
-
defaults: (envContext: EnvironmentContext) => Partial<Extract<BuildConfig, {
|
|
10
|
+
defaults: (envContext: EnvironmentContext, packageManager: PackageManagerType) => Partial<Extract<BuildConfig, {
|
|
11
11
|
type: type;
|
|
12
12
|
}>>;
|
|
13
13
|
};
|
|
@@ -16,7 +16,7 @@ export declare const BUILD_TYPES: BuildTypes;
|
|
|
16
16
|
export type WorkspaceBuildTypes = {
|
|
17
17
|
[type in WorkspaceBuildConfig["type"]]: {
|
|
18
18
|
jobs: (context: WorkspaceContext) => CatladderJob[] | Promise<CatladderJob[]>;
|
|
19
|
-
defaults: () => Partial<Extract<WorkspaceBuildConfig, {
|
|
19
|
+
defaults: (packageManager: PackageManagerType) => Partial<Extract<WorkspaceBuildConfig, {
|
|
20
20
|
type: type;
|
|
21
21
|
}>>;
|
|
22
22
|
};
|
|
@@ -20,27 +20,32 @@ const node_1 = require("./node");
|
|
|
20
20
|
const rails_1 = require("./rails");
|
|
21
21
|
__exportStar(require("./node"), exports);
|
|
22
22
|
__exportStar(require("./types"), exports);
|
|
23
|
+
/**
|
|
24
|
+
* run a package.json script with the project's package manager
|
|
25
|
+
* (`yarn build` / `pnpm build`)
|
|
26
|
+
*/
|
|
27
|
+
const runScript = (packageManager, script) => `${packageManager} ${script}`;
|
|
23
28
|
exports.BUILD_TYPES = {
|
|
24
29
|
node: {
|
|
25
30
|
jobs: node_1.createNodeJobs,
|
|
26
|
-
defaults: () => ({
|
|
27
|
-
buildCommand: "
|
|
28
|
-
startCommand: "
|
|
31
|
+
defaults: (_, pm) => ({
|
|
32
|
+
buildCommand: runScript(pm, "build"),
|
|
33
|
+
startCommand: runScript(pm, "start"),
|
|
29
34
|
artifactsPaths: ["dist", ".next"],
|
|
30
35
|
artifactsExcludePaths: [".next/cache/**/*"],
|
|
31
36
|
}),
|
|
32
37
|
},
|
|
33
38
|
"node-static": {
|
|
34
39
|
jobs: node_1.createNodeJobs,
|
|
35
|
-
defaults: () => ({
|
|
36
|
-
buildCommand: "
|
|
40
|
+
defaults: (_, pm) => ({
|
|
41
|
+
buildCommand: runScript(pm, "build"),
|
|
37
42
|
artifactsPaths: ["dist"],
|
|
38
43
|
}),
|
|
39
44
|
},
|
|
40
45
|
storybook: {
|
|
41
46
|
jobs: node_1.createStorybookJobs,
|
|
42
|
-
defaults: () => ({
|
|
43
|
-
buildCommand: ["
|
|
47
|
+
defaults: (_, pm) => ({
|
|
48
|
+
buildCommand: [runScript(pm, "build-storybook --quiet -o ./dist")],
|
|
44
49
|
artifactsPaths: ["dist"],
|
|
45
50
|
}),
|
|
46
51
|
},
|
|
@@ -70,13 +75,13 @@ exports.BUILD_TYPES = {
|
|
|
70
75
|
exports.WORKSPACE_BUILD_TYPES = {
|
|
71
76
|
node: {
|
|
72
77
|
jobs: node_1.createNodeJobs,
|
|
73
|
-
defaults: () => ({
|
|
74
|
-
buildCommand: "
|
|
78
|
+
defaults: (pm) => ({
|
|
79
|
+
buildCommand: runScript(pm, "build"),
|
|
75
80
|
lint: {
|
|
76
|
-
command: "
|
|
81
|
+
command: runScript(pm, "lint"),
|
|
77
82
|
},
|
|
78
83
|
test: {
|
|
79
|
-
command: "
|
|
84
|
+
command: runScript(pm, "test"),
|
|
80
85
|
},
|
|
81
86
|
}),
|
|
82
87
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/build/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/build/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAQA,qCAA4C;AAC5C,iCAA+E;AAC/E,mCAA0C;AAO1C,yCAAuB;AACvB,0CAAwB;AAExB;;;GAGG;AACH,MAAM,SAAS,GAAG,CAAC,cAAkC,EAAE,MAAc,EAAE,EAAE,CACvE,GAAG,cAAc,IAAI,MAAM,EAAE,CAAC;AAcnB,QAAA,WAAW,GAAe;IACrC,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAc;QACpB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACpB,YAAY,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC;YACpC,YAAY,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC;YACpC,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YACjC,qBAAqB,EAAE,CAAC,kBAAkB,CAAC;SAC5C,CAAC;KACH;IACD,aAAa,EAAE;QACb,IAAI,EAAE,qBAAc;QACpB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACpB,YAAY,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC;YACpC,cAAc,EAAE,CAAC,MAAM,CAAC;SACzB,CAAC;KACH;IACD,SAAS,EAAE;QACT,IAAI,EAAE,0BAAmB;QACzB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACpB,YAAY,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,mCAAmC,CAAC,CAAC;YAClE,cAAc,EAAE,CAAC,MAAM,CAAC;SACzB,CAAC;KACH;IACD,MAAM,EAAE;QACN,IAAI,EAAE,uBAAgB;QACtB,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;YACf,YAAY,EAAE,cAAc;YAC5B,cAAc,EAAE,CAAC,MAAM,CAAC;SACzB,CAAC;KACH;IACD,MAAM,EAAE;QACN,IAAI,EAAE,yBAAgB;QACtB,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;YACf,cAAc,EAAE,CAAC,MAAM,CAAC;SACzB,CAAC;KACH;IACD,KAAK,EAAE;QACL,IAAI,EAAE,uBAAe;QACrB,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;YACf,UAAU,EAAE;gBACV,KAAK,EAAE,mBAAmB;gBAC1B,WAAW,EAAE,QAAQ;aACtB;SACF,CAAC;KACH;CACF,CAAC;AAaW,QAAA,qBAAqB,GAAwB;IACxD,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAc;QACpB,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACjB,YAAY,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC;YACpC,IAAI,EAAE;gBACJ,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC;aAC/B;YACD,IAAI,EAAE;gBACJ,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC;aAC/B;SACF,CAAC;KACH;CACF,CAAC"}
|