@catladder/cli 0.0.0-next-78d43d4a → 0.0.0-next-dbb75f51
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/CONTRIBUTING.md +1 -1
- package/README.md +2 -2
- package/dist/apps/cli/src/catci.js +2 -2
- package/dist/apps/cli/src/catci.js.map +1 -1
- package/dist/apps/cli/src/commands/project/commandGitlabCi.js +2 -1
- package/dist/apps/cli/src/commands/project/commandGitlabCi.js.map +1 -1
- package/dist/apps/cli/src/commands/security/commandSecurityAuditCiJob.js +2 -2
- package/dist/apps/cli/src/commands/security/commandSecurityAuditCiJob.js.map +1 -1
- package/dist/apps/cli/src/commands/security/commandSecurityAuditCreate.js +2 -2
- package/dist/apps/cli/src/commands/security/commandSecurityAuditCreate.js.map +1 -1
- package/dist/apps/cli/src/publish/npmPublishJob.js +22 -5
- package/dist/apps/cli/src/publish/npmPublishJob.js.map +1 -1
- package/dist/apps/cli/src/security/topics.json +15 -15
- package/dist/apps/cli/src/utils/gitlabHost.d.ts +14 -0
- package/dist/apps/cli/src/utils/gitlabHost.js +27 -0
- package/dist/apps/cli/src/utils/gitlabHost.js.map +1 -0
- package/dist/bundles/catci/index.js +10 -4
- package/dist/bundles/catenv/index.js +137 -36
- package/dist/bundles/cli/index.js +178 -42
- package/dist/bundles/runner-images/kubernetes/helm-charts/the-panter-chart/README.md +2 -2
- package/dist/bundles/runner-images/kubernetes/helm-charts/the-panter-chart/templates/_helpers.tpl +0 -10
- package/dist/bundles/runner-images/kubernetes/helm-charts/the-panter-chart/templates/app.ingress.yaml +0 -5
- package/dist/bundles/runner-images/kubernetes/helm-charts/the-panter-chart/values.yaml +0 -1
- package/dist/bundles/runner-images/npm-publish/Dockerfile +12 -0
- package/dist/bundles/runner-images/semantic-release/scripts/semanticRelease +4 -3
- package/dist/bundles/skills/catladder-config/SKILL.md +1 -1
- package/dist/bundles/skills/catladder-deploys/references/deploy-types.md +3 -2
- package/dist/packages/pipeline/src/backends/github/createGithubJobs.js +70 -24
- package/dist/packages/pipeline/src/backends/github/createGithubJobs.js.map +1 -1
- package/dist/packages/pipeline/src/backends/gitlab/GitlabBackend.js +11 -1
- package/dist/packages/pipeline/src/backends/gitlab/GitlabBackend.js.map +1 -1
- package/dist/packages/pipeline/src/backends/gitlab/createGitlabJobs.js +5 -1
- package/dist/packages/pipeline/src/backends/gitlab/createGitlabJobs.js.map +1 -1
- package/dist/packages/pipeline/src/backends/index.d.ts +6 -0
- package/dist/packages/pipeline/src/backends/index.js +9 -2
- package/dist/packages/pipeline/src/backends/index.js.map +1 -1
- package/dist/packages/pipeline/src/context/getEnvironmentVariables.d.ts +1 -1
- package/dist/packages/pipeline/src/customImages/shippedImages.js +1 -0
- package/dist/packages/pipeline/src/customImages/shippedImages.js.map +1 -1
- package/dist/packages/pipeline/src/deploy/base/deploy.js +1 -0
- package/dist/packages/pipeline/src/deploy/base/deploy.js.map +1 -1
- package/dist/packages/pipeline/src/deploy/npmPackage/deployJob.js +6 -1
- package/dist/packages/pipeline/src/deploy/npmPackage/deployJob.js.map +1 -1
- package/dist/packages/pipeline/src/deploy/pages/deployJob.js +16 -5
- package/dist/packages/pipeline/src/deploy/pages/deployJob.js.map +1 -1
- package/dist/packages/pipeline/src/pipeline/generatePipelineFiles.js +10 -0
- package/dist/packages/pipeline/src/pipeline/generatePipelineFiles.js.map +1 -1
- package/dist/packages/pipeline/src/runner/index.d.ts +1 -1
- package/dist/packages/pipeline/src/runner/index.js.map +1 -1
- package/dist/packages/pipeline/src/types/config.d.ts +4 -4
- package/dist/packages/pipeline/src/types/hooks.d.ts +1 -1
- package/dist/packages/pipeline/src/types/jobDefinition.d.ts +1 -1
- package/dist/packages/pipeline/src/types/jobs.d.ts +9 -0
- package/dist/packages/pipeline/src/types/jobs.js.map +1 -1
- package/dist/packages/pipeline/src/utils/writeFiles.d.ts +6 -0
- package/dist/packages/pipeline/src/utils/writeFiles.js +8 -2
- package/dist/packages/pipeline/src/utils/writeFiles.js.map +1 -1
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/README.md +2 -2
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/_helpers.tpl +0 -10
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/app.ingress.yaml +0 -5
- package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/values.yaml +0 -1
- package/dist/runner-images/npm-publish/Dockerfile +12 -0
- package/dist/runner-images/semantic-release/scripts/semanticRelease +4 -3
- package/dist/skills/catladder-config/SKILL.md +1 -1
- package/dist/skills/catladder-deploys/references/deploy-types.md +3 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/includes/envrc +1 -1
- package/package.json +5 -5
- package/src/catci.ts +2 -3
- package/src/commands/project/commandGitlabCi.ts +2 -1
- package/src/commands/security/commandSecurityAuditCiJob.ts +2 -3
- package/src/commands/security/commandSecurityAuditCreate.ts +2 -3
- package/src/publish/npmPublishJob.ts +32 -6
- package/src/security/topics.json +15 -15
- package/src/utils/gitlabHost.ts +23 -0
|
@@ -29,7 +29,7 @@ type MaybePromise<T> = T | Promise<T>;
|
|
|
29
29
|
* them silently. Prefer a first-class config option whenever one exists.
|
|
30
30
|
*
|
|
31
31
|
* If you need a hook, please raise an issue on
|
|
32
|
-
* https://
|
|
32
|
+
* https://github.com/panter/catladder/issues describing the use
|
|
33
33
|
* case. This feedback helps us generalize it into a supported feature.
|
|
34
34
|
*/
|
|
35
35
|
export type Hooks = {
|
|
@@ -4,7 +4,7 @@ export type AppBuildJobDefinition = Partial<Omit<CatladderJobSpec, "artifacts" |
|
|
|
4
4
|
cache?: CacheConfig[];
|
|
5
5
|
};
|
|
6
6
|
export type DockerBuildJobDefinition = AppBuildJobDefinition;
|
|
7
|
-
export type DeployJobDefinition = Pick<CatladderJobSpec, "script" | "variables" | "image" | "artifacts" | "services" | "runnerVariables" | "allow_failure" | "pages"> & {
|
|
7
|
+
export type DeployJobDefinition = Pick<CatladderJobSpec, "script" | "variables" | "image" | "artifacts" | "services" | "runnerVariables" | "allow_failure" | "pages" | "idToken"> & {
|
|
8
8
|
cache?: CacheConfig[];
|
|
9
9
|
};
|
|
10
10
|
export type StopJobDefinition = Pick<CatladderJobSpec, "script" | "variables" | "image" | "runnerVariables">;
|
|
@@ -152,6 +152,15 @@ export type CatladderJobCore<S = BaseStage> = {
|
|
|
152
152
|
* declares that this job interacts with a deployment environment
|
|
153
153
|
*/
|
|
154
154
|
environment?: CatladderJobEnvironmentConfig;
|
|
155
|
+
/**
|
|
156
|
+
* the job needs a workload-identity token from the CI system, to
|
|
157
|
+
* authenticate against a third party without a stored secret (e.g.
|
|
158
|
+
* npm trusted publishing).
|
|
159
|
+
*
|
|
160
|
+
* Lowered by the github backend to `permissions: id-token: write`.
|
|
161
|
+
* Ignored on gitlab, whose ID tokens are configured per job instead.
|
|
162
|
+
*/
|
|
163
|
+
idToken?: boolean;
|
|
155
164
|
/**
|
|
156
165
|
* variables to pass
|
|
157
166
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/types/jobs.ts"],"names":[],"mappings":";;;AAIA,8DAA2D;AAsB9C,QAAA,WAAW,GAAG;IACzB,OAAO;IACP,MAAM;IACN,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,MAAM;CACE,CAAC;AAWE,QAAA,YAAY,GAAG;IAC1B,OAAO;IACP,gBAAgB;IAChB,aAAa;IACb,aAAa;IACb,YAAY;CACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/types/jobs.ts"],"names":[],"mappings":";;;AAIA,8DAA2D;AAsB9C,QAAA,WAAW,GAAG;IACzB,OAAO;IACP,MAAM;IACN,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,MAAM;CACE,CAAC;AAWE,QAAA,YAAY,GAAG;IAC1B,OAAO;IACP,gBAAgB;IAChB,aAAa;IACb,aAAa;IACb,YAAY;CACJ,CAAC;AAuOX;;;;;;;GAOG;AACH,4JAA4J;AAC5J,MAAa,YAAY;IACvB,YAAY,IAAyB;QACnC,uDAAuD;QACvD,2DAA2D;QAC3D,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAA,iCAAe,EAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,IAAI,CACT,GAAkD;QAElD,OAAO,GAAG,YAAY,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IACnE,CAAC;CACF;AAZD,oCAYC"}
|
|
@@ -4,6 +4,12 @@ import type { BaseHookContext } from "../types/hooks";
|
|
|
4
4
|
type WriteFileOptions = {
|
|
5
5
|
commentChar: string;
|
|
6
6
|
};
|
|
7
|
+
/**
|
|
8
|
+
* the line that marks a file as catladder-generated. Cleanup code uses
|
|
9
|
+
* it to tell a generated file apart from a hand-maintained one at the
|
|
10
|
+
* same path (e.g. a `.gitlab-ci.yml` a project wrote itself).
|
|
11
|
+
*/
|
|
12
|
+
export declare const GENERATED_FILE_MARKER = "\uD83D\uDC31 \uD83D\uDD28 This file is generated by catladder";
|
|
7
13
|
type StringifyOptions = Exclude<Parameters<typeof stringify>[2], null | undefined | string | number>;
|
|
8
14
|
export declare const yamlStringifyOptions: StringifyOptions;
|
|
9
15
|
export declare class FileWriter {
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FileWriter = exports.yamlStringifyOptions = void 0;
|
|
3
|
+
exports.FileWriter = exports.yamlStringifyOptions = exports.GENERATED_FILE_MARKER = void 0;
|
|
4
4
|
const promises_1 = require("fs/promises");
|
|
5
5
|
const yaml_1 = require("yaml");
|
|
6
|
+
/**
|
|
7
|
+
* the line that marks a file as catladder-generated. Cleanup code uses
|
|
8
|
+
* it to tell a generated file apart from a hand-maintained one at the
|
|
9
|
+
* same path (e.g. a `.gitlab-ci.yml` a project wrote itself).
|
|
10
|
+
*/
|
|
11
|
+
exports.GENERATED_FILE_MARKER = "🐱 🔨 This file is generated by catladder";
|
|
6
12
|
exports.yamlStringifyOptions = {
|
|
7
13
|
// prevents colapsing long command statements into multiple lines
|
|
8
14
|
lineWidth: 0,
|
|
@@ -62,7 +68,7 @@ class FileWriter {
|
|
|
62
68
|
getAutoGeneratedHeader(commentChar) {
|
|
63
69
|
return [
|
|
64
70
|
"-------------------------------------------------",
|
|
65
|
-
|
|
71
|
+
exports.GENERATED_FILE_MARKER,
|
|
66
72
|
`🚨 Do not edit this file manually 🚨`,
|
|
67
73
|
"-------------------------------------------------",
|
|
68
74
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeFiles.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/utils/writeFiles.ts"],"names":[],"mappings":";;;AAAA,0CAAwC;AACxC,+BAAiC;
|
|
1
|
+
{"version":3,"file":"writeFiles.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/utils/writeFiles.ts"],"names":[],"mappings":";;;AAAA,0CAAwC;AACxC,+BAAiC;AAQjC;;;;GAIG;AACU,QAAA,qBAAqB,GAChC,2CAA2C,CAAC;AAMjC,QAAA,oBAAoB,GAAqB;IACpD,iEAAiE;IACjE,SAAS,EAAE,CAAC;IACZ,4DAA4D;IAC5D,kBAAkB,EAAE,IAAI;IACxB,qEAAqE;IACrE,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF,MAAa,UAAU;IACd,MAAM,CAAC,MAAM,CAAC,MAAc;QACjC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,OAAe;;QACxD,MAAM,kBAAkB,GACtB,MAAM,CAAA,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,0CAAE,wBAAwB,mDAAG;YAClD,GAAG,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACxC,OAAO;SACR,CAAC,CAAA,CAAC;QACL,MAAM,IAAA,oBAAS,EAAC,IAAI,EAAE,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,OAAO,EAAE;YACnD,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAC,IAAY;;QAC7C,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,mCAAI,EAAE,CAAC;QAC7C,OAAO;YACL,QAAQ;YACR,IAAI;YACJ,SAAS,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,mCAAI,EAAE;SACvC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,qBAAqB,CAAC,IAAY,EAAE,OAAe;QAC9D,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAC7B,IAAY,EACZ,OAAe,EACf,OAAyB;QAEzB,MAAM,IAAI,CAAC,YAAY,CACrB,IAAI,EACJ,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACvE,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,IAAS;;QAChD,MAAM,eAAe,GAAG,MAAM,CAAA,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,0CAAE,wBAAwB,mDACvE;YACE,GAAG,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI;SACL,CACF,CAAA,CAAC;QACF,OAAO,IAAI,CAAC,kBAAkB,CAC5B,IAAI,EACJ,IAAA,gBAAS,EAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,IAAI,EAAE,4BAAoB,CAAC,EACxD;YACE,WAAW,EAAE,GAAG;SACjB,CACF,CAAC;IACJ,CAAC;IAES,sBAAsB,CAAC,WAAmB;QAClD,OAAO;YACL,mDAAmD;YACnD,6BAAqB;YACrB,sCAAsC;YACtC,mDAAmD;SACpD;aACE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,WAAW,IAAI,IAAI,EAAE,CAAC;aACvC,IAAI,CAAC,IAAI,CAAC;aACV,MAAM,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;CACF;AA5ED,gCA4EC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# The panter chart
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**The default chart catladder deploys kubernetes components with.**
|
|
4
4
|
|
|
5
5
|
Developing helm charts can be complex and they tend to be very verbose.
|
|
6
6
|
Our goal is therefore to provide a common chart that provides all functionalities that you might need
|
|
@@ -21,4 +21,4 @@ This way we avoid having complexity in the projects and make it easier to share
|
|
|
21
21
|
- support for namespace secrets and custom env-vars (using catladder-shell and gitlab-ci)
|
|
22
22
|
- optional prisam1 (_deprecated, prisma2 does not need a separate instance anymore_)
|
|
23
23
|
|
|
24
|
-
See https://
|
|
24
|
+
See https://github.com/panter/catladder for usage information
|
|
@@ -190,13 +190,3 @@ env:
|
|
|
190
190
|
|
|
191
191
|
|
|
192
192
|
|
|
193
|
-
{{- define "visualReviewSnippet" -}}
|
|
194
|
-
<script
|
|
195
|
-
data-project-id='{{.Values.gitlab.projectId}}'
|
|
196
|
-
data-merge-request-id='{{.Values.gitlab.mergeRequestId}}'
|
|
197
|
-
data-mr-url='https://git.panter.ch'
|
|
198
|
-
data-project-path='{{.Values.gitlab.projectPath}}'
|
|
199
|
-
id='review-app-toolbar-script'
|
|
200
|
-
src='https://git.panter.ch/assets/webpack/visual_review_toolbar.js'>
|
|
201
|
-
</script>
|
|
202
|
-
{{- end -}}
|
package/dist/runner-images/kubernetes/helm-charts/the-panter-chart/templates/app.ingress.yaml
CHANGED
|
@@ -16,11 +16,6 @@ metadata:
|
|
|
16
16
|
nginx.ingress.kubernetes.io/rewrite-target: /$1
|
|
17
17
|
nginx.ingress.kubernetes.io/configuration-snippet: |
|
|
18
18
|
more_set_headers "x-build-id: {{ .Values.global.BUILD_ID }}";
|
|
19
|
-
{{- if and .Values.gitlab.visualReviewEnabled (and .Values.global.ENV_SHORT (eq .Values.global.ENV_SHORT "review"))}}
|
|
20
|
-
proxy_set_header Accept-Encoding "";
|
|
21
|
-
sub_filter_once on;
|
|
22
|
-
sub_filter "</head>" "{{- include "visualReviewSnippet" . | nindent 8 -}}</head>";
|
|
23
|
-
{{- end }}
|
|
24
19
|
{{- range $key, $value := .Values.ingress.annotations }}
|
|
25
20
|
{{ $key }}: {{ $value | quote }}
|
|
26
21
|
{{- end }}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
FROM node:lts-alpine
|
|
2
|
+
|
|
3
|
+
RUN apk add --no-cache bash git
|
|
4
|
+
|
|
5
|
+
# npm trusted publishing (OIDC) needs npm >= 11.5.1; the npm bundled
|
|
6
|
+
# with the node image is not guaranteed to be new enough, so pin the
|
|
7
|
+
# major explicitly. Without it npm silently falls back to token auth.
|
|
8
|
+
RUN npm install -g npm@11
|
|
9
|
+
|
|
10
|
+
# no publish logic baked in: it lives in catci, which pipeline
|
|
11
|
+
# generation materializes into the repository checkout
|
|
12
|
+
# (.catladder-generated/catci)
|
|
@@ -45,10 +45,11 @@ if [ "$GITHUB_ACTIONS" = "true" ]; then
|
|
|
45
45
|
# is gitlab-specific)
|
|
46
46
|
PUBLISH_PLUGIN=""
|
|
47
47
|
else
|
|
48
|
+
# no gitlabUrl: the plugin derives it from the CI-provided variables
|
|
49
|
+
# of the running instance. It used to be hardcoded to panter's gitlab,
|
|
50
|
+
# which broke the release on every other instance.
|
|
48
51
|
PUBLISH_PLUGIN=',
|
|
49
|
-
|
|
50
|
-
"gitlabUrl": "https://git.panter.ch"
|
|
51
|
-
}]'
|
|
52
|
+
"@semantic-release/gitlab"'
|
|
52
53
|
fi
|
|
53
54
|
|
|
54
55
|
if [ ! -e .releaserc ]; then
|
|
@@ -103,7 +103,7 @@ first.
|
|
|
103
103
|
a dev needs `customJobs` or a transform hook, it almost always means
|
|
104
104
|
catladder is missing a capability that other projects will need too.
|
|
105
105
|
**Open an issue at
|
|
106
|
-
https://
|
|
106
|
+
https://github.com/panter/catladder/issues** describing the use
|
|
107
107
|
case (what you're trying to achieve and why the existing config can't
|
|
108
108
|
express it) so it can be generalized into a supported feature — and,
|
|
109
109
|
where possible, offer to help the dev write that issue. The goal is for
|
|
@@ -54,11 +54,12 @@ resources with `yarn catladder project setup`; detect drift with
|
|
|
54
54
|
- `registry?: string` — registry url, default `https://registry.npmjs.org/`.
|
|
55
55
|
- `distTag?: string` — overrides the derived dist-tag.
|
|
56
56
|
- Version/dist-tag derivation: tagged release (`prod`) → tag version under `latest`; branch/MR → `0.0.0-<branch-slug>-<sha>` under `canary` (branches `next`/`beta` publish under their own dist-tag).
|
|
57
|
-
-
|
|
57
|
+
- Auth: the `NPM_TOKEN` secret (managed like any catladder secret), or — on github — **trusted publishing** with no stored token: register the package's trusted publisher on npmjs.com with the repo and the publishing **workflow filename** (`catladder-release.yml` for tagged releases). npm allows one trusted publisher per package, so canary publishes from the main/review workflows still need `NPM_TOKEN`. A set token always wins over OIDC.
|
|
58
|
+
- Disable staging on the component (`env: { stage: false }`) so tagged releases publish directly.
|
|
58
59
|
|
|
59
60
|
## `pages`
|
|
60
61
|
|
|
61
|
-
- `type: "pages"` — **required**. Publishes a static site on gitlab pages
|
|
62
|
+
- `type: "pages"` — **required**. Publishes a static site on gitlab pages or github pages. On github the repo's Pages source must be set to "GitHub Actions" once; per-merge-request previews are gitlab-only (github serves one site per repository).
|
|
62
63
|
- `script: string[]` — **required**; produces the site.
|
|
63
64
|
- `publishDir?: string` — output directory relative to the repo root, default `"public"`.
|
|
64
65
|
- `requiresInstall?: boolean` — run the package-manager install (yarn/pnpm) first (`requiresYarnInstall` is a deprecated alias).
|