@catladder/cli 0.0.0-next-31a23584 → 0.0.0-next-41642e39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/apps/cli/src/publish/npmPublishJob.js +17 -12
  2. package/dist/apps/cli/src/publish/npmPublishJob.js.map +1 -1
  3. package/dist/bundles/catci/index.js +2 -2
  4. package/dist/bundles/catenv/index.js +140 -43
  5. package/dist/bundles/cli/index.js +140 -43
  6. package/dist/bundles/skills/catladder-deploys/SKILL.md +31 -2
  7. package/dist/bundles/skills/catladder-deploys/references/deploy-types.md +10 -0
  8. package/dist/packages/pipeline/src/build/node/cache.js +33 -36
  9. package/dist/packages/pipeline/src/build/node/cache.js.map +1 -1
  10. package/dist/packages/pipeline/src/deploy/base/deploy.js +5 -3
  11. package/dist/packages/pipeline/src/deploy/base/deploy.js.map +1 -1
  12. package/dist/packages/pipeline/src/deploy/custom/deployJob.js +3 -0
  13. package/dist/packages/pipeline/src/deploy/custom/deployJob.js.map +1 -1
  14. package/dist/packages/pipeline/src/deploy/index.d.ts +1 -0
  15. package/dist/packages/pipeline/src/deploy/index.js +3 -0
  16. package/dist/packages/pipeline/src/deploy/index.js.map +1 -1
  17. package/dist/packages/pipeline/src/deploy/npmPackage/index.js +4 -4
  18. package/dist/packages/pipeline/src/deploy/npmPackage/index.js.map +1 -1
  19. package/dist/packages/pipeline/src/deploy/pages/deployJob.d.ts +3 -0
  20. package/dist/packages/pipeline/src/deploy/pages/deployJob.js +55 -0
  21. package/dist/packages/pipeline/src/deploy/pages/deployJob.js.map +1 -0
  22. package/dist/packages/pipeline/src/deploy/pages/index.d.ts +2 -0
  23. package/dist/packages/pipeline/src/deploy/pages/index.js +12 -0
  24. package/dist/packages/pipeline/src/deploy/pages/index.js.map +1 -0
  25. package/dist/packages/pipeline/src/deploy/types/base.d.ts +5 -0
  26. package/dist/packages/pipeline/src/deploy/types/custom.d.ts +4 -0
  27. package/dist/packages/pipeline/src/deploy/types/index.d.ts +7 -3
  28. package/dist/packages/pipeline/src/deploy/types/index.js +1 -0
  29. package/dist/packages/pipeline/src/deploy/types/index.js.map +1 -1
  30. package/dist/packages/pipeline/src/deploy/types/pages.d.ts +37 -0
  31. package/dist/packages/pipeline/src/deploy/types/pages.js +3 -0
  32. package/dist/packages/pipeline/src/deploy/types/pages.js.map +1 -0
  33. package/dist/packages/pipeline/src/types/gitlab-types.d.ts +3 -0
  34. package/dist/packages/pipeline/src/types/jobDefinition.d.ts +1 -1
  35. package/dist/packages/pipeline/src/types/jobs.d.ts +8 -0
  36. package/dist/packages/pipeline/src/types/jobs.js.map +1 -1
  37. package/dist/skills/catladder-deploys/SKILL.md +31 -2
  38. package/dist/skills/catladder-deploys/references/deploy-types.md +10 -0
  39. package/dist/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +2 -3
  41. package/src/publish/npmPublishJob.ts +19 -14
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getNodeCache = exports.getNodeModulesCache = exports.getYarnCache = void 0;
7
- const lodash_es_1 = require("lodash-es");
8
7
  const path_1 = require("path");
9
8
  const slugify_1 = __importDefault(require("slugify"));
10
9
  /**
@@ -13,15 +12,37 @@ const slugify_1 = __importDefault(require("slugify"));
13
12
  * exact-lockfile hit (github skips the ~0.6GB download on warm runs)
14
13
  */
15
14
  const NODE_MODULES_CACHE_ID = "node-modules";
16
- const getYarnCache = async (context, policy = "pull-push") => {
15
+ /**
16
+ * the directory whose caches this job uses. Components that are part of
17
+ * a shared workspace use the workspace root's caches: the install
18
+ * operates on the whole workspace, and the workspace build job is the
19
+ * one that populates the slots. Historically these component jobs
20
+ * (verify, docker) read a separate key family that no job ever saved,
21
+ * so they always started cold. Standalone components and the workspace
22
+ * jobs themselves keep using their own build dir (unchanged keys).
23
+ */
24
+ const getCacheBaseDir = async (context) => {
25
+ var _a;
17
26
  const packageManagerInfo = await context.packageManagerInfo;
18
27
  const componentIsInWorkspace = context.type === "component" &&
19
28
  "componentIsInWorkspace" in packageManagerInfo &&
20
29
  packageManagerInfo.componentIsInWorkspace;
30
+ if (!componentIsInWorkspace)
31
+ return context.build.dir;
32
+ // the workspace build's dir when the component references one,
33
+ // otherwise the repo root (packageManager.ts resolves workspace
34
+ // membership against the root)
35
+ return context.build.type === "fromWorkspace"
36
+ ? ((_a = context.build.workspaceBuildConfig.dir) !== null && _a !== void 0 ? _a : ".")
37
+ : ".";
38
+ };
39
+ const getYarnCache = async (context, policy = "pull-push") => {
40
+ const baseDir = await getCacheBaseDir(context);
21
41
  return [
22
42
  {
23
- scope: componentIsInWorkspace ? "global" : "buildDir",
24
- pathMode: componentIsInWorkspace ? "absolute" : "relative",
43
+ scope: "buildDir",
44
+ pathMode: "relative",
45
+ buildDir: baseDir,
25
46
  key: "yarn",
26
47
  policy,
27
48
  paths: [".yarn"],
@@ -38,52 +59,28 @@ const getYarnCache = async (context, policy = "pull-push") => {
38
59
  };
39
60
  exports.getYarnCache = getYarnCache;
40
61
  const getNodeModulesCache = async (context, policy = "pull-push") => {
41
- var _a, _b;
42
62
  const packageManagerInfo = await context.packageManagerInfo;
43
- const componentIsInWorkspace = context.type === "component" &&
44
- "componentIsInWorkspace" in packageManagerInfo &&
45
- packageManagerInfo.componentIsInWorkspace;
46
- const { isClassic, workspaces } = packageManagerInfo;
63
+ const baseDir = await getCacheBaseDir(context);
64
+ const { isClassic } = packageManagerInfo;
47
65
  // We intentionally do not use the contents of yarn.lock as a cache key, as yarn install should always guarantee that the files are updated, but it can still use part of the cache if not all packages are up-to-date.
48
66
  // It would slow down all pipelines whenever one adds a new dependency as it will need to download all node_modules again.
49
67
  return [
50
68
  {
51
69
  scope: "global",
52
70
  pathMode: "absolute",
53
- // if component is in a shared workspace, use workspace cache. use individual cache else
54
- key: componentIsInWorkspace
55
- ? "node-modules-workspace"
56
- : (0, slugify_1.default)(context.build.dir) + "-node-modules", // we use the dirname, not the component name, because in certain cases we have two apps in the same directory and want to share the cache, e.g. when having storybook in the same package.json
71
+ // we use the dirname, not the component name, because in certain cases we have two apps in the same directory and want to share the cache, e.g. when having storybook in the same package.json
72
+ key: (0, slugify_1.default)(baseDir) + "-node-modules",
57
73
  // content-key for immutable-cache backends (github); the lockfile
58
74
  // decides whether the cached content could have changed (absolute
59
- // pathMode: resolve the standalone component's lockfile explicitly)
60
- keyFiles: [
61
- componentIsInWorkspace
62
- ? "yarn.lock"
63
- : (0, path_1.join)(context.build.dir, "yarn.lock"),
64
- ],
75
+ // pathMode: resolve the lockfile explicitly)
76
+ keyFiles: [(0, path_1.join)(baseDir, "yarn.lock")],
65
77
  // referenced by the yarn cache: an exact hit here makes the yarn
66
78
  // zips unnecessary (see redundantOnExactHitOf on getYarnCache)
67
79
  cacheId: NODE_MODULES_CACHE_ID,
68
80
  policy,
69
81
  paths: [
70
- ...(componentIsInWorkspace
71
- ? (0, lodash_es_1.uniq)([
72
- "node_modules",
73
- ...((_a = workspaces.map((w) => (0, path_1.join)(w.location, "node_modules"))) !== null && _a !== void 0 ? _a : []),
74
- ...(!isClassic
75
- ? [
76
- ".yarn/install-state.gz",
77
- ...((_b = workspaces.map((w) => (0, path_1.join)(w.location, ".yarn/install-state.gz"))) !== null && _b !== void 0 ? _b : []),
78
- ]
79
- : []),
80
- ])
81
- : [
82
- (0, path_1.join)(context.build.dir, "node_modules"),
83
- ...(!isClassic
84
- ? [(0, path_1.join)(context.build.dir, ".yarn/install-state.gz")]
85
- : []),
86
- ]),
82
+ (0, path_1.join)(baseDir, "node_modules"),
83
+ ...(!isClassic ? [(0, path_1.join)(baseDir, ".yarn/install-state.gz")] : []),
87
84
  ],
88
85
  },
89
86
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/build/node/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/build/node/cache.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ const variables_1 = require("./variables");
10
10
  exports.DEPLOY_JOB_NAME = "🚀 Deploy";
11
11
  class DeployJob extends jobs_1.CatladderJob {
12
12
  constructor(context, jobDefinition) {
13
- var _a, _b, _c, _d, _e, _f;
13
+ var _a, _b, _c, _d, _e, _f, _g;
14
14
  const hasDocker = (0, docker_1.requiresDockerBuild)(context);
15
15
  const isStoppable = (0, utils_1.contextIsStoppable)(context);
16
16
  const autoStop = context.environment.envType === "review"
@@ -88,6 +88,8 @@ class DeployJob extends jobs_1.CatladderJob {
88
88
  caches: jobDefinition.cache,
89
89
  artifacts: jobDefinition.artifacts,
90
90
  services: jobDefinition.services,
91
+ pages: jobDefinition.pages,
92
+ allow_failure: (_e = jobDefinition.allow_failure) !== null && _e !== void 0 ? _e : deployConfig === null || deployConfig === void 0 ? void 0 : deployConfig.allowFailure,
91
93
  envMode: "stagePerEnv", // makes it easier to run manual tasks er env
92
94
  needs: [],
93
95
  requires: [
@@ -107,8 +109,8 @@ class DeployJob extends jobs_1.CatladderJob {
107
109
  },
108
110
  runnerVariables: {
109
111
  ...variables_1.DEPLOY_RUNNER_VARIABLES,
110
- ...((_e = jobDefinition.runnerVariables) !== null && _e !== void 0 ? _e : {}),
111
- ...(deployConfig ? ((_f = deployConfig.runnerVariables) !== null && _f !== void 0 ? _f : {}) : {}),
112
+ ...((_f = jobDefinition.runnerVariables) !== null && _f !== void 0 ? _f : {}),
113
+ ...(deployConfig ? ((_g = deployConfig.runnerVariables) !== null && _g !== void 0 ? _g : {}) : {}),
112
114
  },
113
115
  environment: isStoppable
114
116
  ? {
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/base/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/base/deploy.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,9 @@ const createCustomDeployJobs = async (context) => {
21
21
  deploy: {
22
22
  image: (_b = deployConfig.jobImage) !== null && _b !== void 0 ? _b : (0, runner_1.getRunnerImage)("jobs-default"),
23
23
  cache: (0, getAllCacheConfigsFromConfig_1.getAllCacheConfigsFromConfig)(context, deployConfig),
24
+ artifacts: deployConfig.artifactsPaths
25
+ ? { paths: deployConfig.artifactsPaths }
26
+ : undefined,
24
27
  script: [
25
28
  `cd ${context.build.dir}`,
26
29
  ...(deployConfig.requiresYarnInstall ? yarnInstall : []),
@@ -1 +1 @@
1
- {"version":3,"file":"deployJob.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/custom/deployJob.ts"],"names":[],"mappings":";;;AAAA,iGAA8F;AAC9F,gDAAuD;AACvD,yCAA8C;AAG9C,kCAAgD;AAEhD,oCAA0C;AAEnC,MAAM,sBAAsB,GAAG,KAAK,EACzC,OAAyB,EACA,EAAE;;IAC3B,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,MAAM,0CAAE,MAAM,CAAC;IAE5C,IAAI,CAAC,IAAA,sBAAc,EAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC5C,oBAAoB;QACpB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD,4DAA4D;IAC5D,MAAM,WAAW,GAAG,MAAM,IAAA,qBAAc,EAAC,OAAO,EAAE;QAChD,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAA,4BAAqB,EAAC,OAAO,EAAE;QAC5C,MAAM,EAAE;YACN,KAAK,EAAE,MAAA,YAAY,CAAC,QAAQ,mCAAI,IAAA,uBAAc,EAAC,cAAc,CAAC;YAC9D,KAAK,EAAE,IAAA,2DAA4B,EAAC,OAAO,EAAE,YAAY,CAAC;YAC1D,MAAM,EAAE;gBACN,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;gBACzB,GAAG,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,GAAG,YAAY,CAAC,MAAM;aACvB;YACD,SAAS,EAAE,EAAE;SACd;QACD,IAAI,EAAE,YAAY,CAAC,UAAU;YAC3B,CAAC,CAAC;gBACE,KAAK,EAAE,MAAA,YAAY,CAAC,QAAQ,mCAAI,IAAA,uBAAc,EAAC,cAAc,CAAC;gBAC9D,MAAM,EAAE,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC;gBACpC,SAAS,EAAE,EAAE;aACd;YACH,CAAC,CAAC,SAAS;KACd,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAlCW,QAAA,sBAAsB,0BAkCjC"}
1
+ {"version":3,"file":"deployJob.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/custom/deployJob.ts"],"names":[],"mappings":";;;AAAA,iGAA8F;AAC9F,gDAAuD;AACvD,yCAA8C;AAG9C,kCAAgD;AAEhD,oCAA0C;AAEnC,MAAM,sBAAsB,GAAG,KAAK,EACzC,OAAyB,EACA,EAAE;;IAC3B,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,MAAM,0CAAE,MAAM,CAAC;IAE5C,IAAI,CAAC,IAAA,sBAAc,EAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC5C,oBAAoB;QACpB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD,4DAA4D;IAC5D,MAAM,WAAW,GAAG,MAAM,IAAA,qBAAc,EAAC,OAAO,EAAE;QAChD,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAA,4BAAqB,EAAC,OAAO,EAAE;QAC5C,MAAM,EAAE;YACN,KAAK,EAAE,MAAA,YAAY,CAAC,QAAQ,mCAAI,IAAA,uBAAc,EAAC,cAAc,CAAC;YAC9D,KAAK,EAAE,IAAA,2DAA4B,EAAC,OAAO,EAAE,YAAY,CAAC;YAC1D,SAAS,EAAE,YAAY,CAAC,cAAc;gBACpC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,cAAc,EAAE;gBACxC,CAAC,CAAC,SAAS;YACb,MAAM,EAAE;gBACN,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;gBACzB,GAAG,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,GAAG,YAAY,CAAC,MAAM;aACvB;YACD,SAAS,EAAE,EAAE;SACd;QACD,IAAI,EAAE,YAAY,CAAC,UAAU;YAC3B,CAAC,CAAC;gBACE,KAAK,EAAE,MAAA,YAAY,CAAC,QAAQ,mCAAI,IAAA,uBAAc,EAAC,cAAc,CAAC;gBAC9D,MAAM,EAAE,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC;gBACpC,SAAS,EAAE,EAAE;aACd;YACH,CAAC,CAAC,SAAS;KACd,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AArCW,QAAA,sBAAsB,0BAqCjC"}
@@ -8,6 +8,7 @@ import type { DeployConfig, DeployConfigGeneric, DeployConfigType } from "./type
8
8
  export * from "./cloudRun";
9
9
  export * from "./kubernetes";
10
10
  export * from "./npmPackage";
11
+ export * from "./pages";
11
12
  export * from "./types";
12
13
  export * from "./utils";
13
14
  export type DeployTypeDefinition<D extends DeployConfig> = {
@@ -20,9 +20,11 @@ const custom_1 = require("./custom");
20
20
  const dockerTag_1 = require("./dockerTag");
21
21
  const kubernetes_1 = require("./kubernetes");
22
22
  const npmPackage_1 = require("./npmPackage");
23
+ const pages_1 = require("./pages");
23
24
  __exportStar(require("./cloudRun"), exports);
24
25
  __exportStar(require("./kubernetes"), exports);
25
26
  __exportStar(require("./npmPackage"), exports);
27
+ __exportStar(require("./pages"), exports);
26
28
  __exportStar(require("./types"), exports);
27
29
  __exportStar(require("./utils"), exports);
28
30
  exports.DEPLOY_TYPES = {
@@ -31,5 +33,6 @@ exports.DEPLOY_TYPES = {
31
33
  dockerTag: dockerTag_1.DOCKER_TAG_DEPLOY_TYPE,
32
34
  "google-cloudrun": cloudRun_1.GCLOUD_RUN_DEPLOY_TYPE,
33
35
  npmPackage: npmPackage_1.NPM_PACKAGE_DEPLOY_TYPE,
36
+ pages: pages_1.PAGES_DEPLOY_TYPE,
34
37
  };
35
38
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/deploy/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAMA,yCAAoD;AACpD,qCAA8C;AAC9C,2CAAqD;AACrD,6CAAsD;AACtD,6CAAuD;AAMvD,6CAA2B;AAC3B,+CAA6B;AAC7B,+CAA6B;AAC7B,0CAAwB;AACxB,0CAAwB;AAqBX,QAAA,YAAY,GAAgB;IACvC,UAAU,EAAE,mCAAsB;IAClC,MAAM,EAAE,2BAAkB;IAC1B,SAAS,EAAE,kCAAsB;IACjC,iBAAiB,EAAE,iCAAsB;IACzC,UAAU,EAAE,oCAAuB;CACpC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/deploy/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAMA,yCAAoD;AACpD,qCAA8C;AAC9C,2CAAqD;AACrD,6CAAsD;AACtD,6CAAuD;AACvD,mCAA4C;AAM5C,6CAA2B;AAC3B,+CAA6B;AAC7B,+CAA6B;AAC7B,0CAAwB;AACxB,0CAAwB;AACxB,0CAAwB;AAqBX,QAAA,YAAY,GAAgB;IACvC,UAAU,EAAE,mCAAsB;IAClC,MAAM,EAAE,2BAAkB;IAC1B,SAAS,EAAE,kCAAsB;IACjC,iBAAiB,EAAE,iCAAsB;IACzC,UAAU,EAAE,oCAAuB;IACnC,KAAK,EAAE,yBAAiB;CACzB,CAAC"}
@@ -7,10 +7,10 @@ exports.NPM_PACKAGE_DEPLOY_TYPE = {
7
7
  jobs: deployJob_1.createNpmPackageDeployJobs,
8
8
  defaults: () => ({}),
9
9
  additionalSecretKeys: (ctx) =>
10
- // publish credentials don't exist for the local env
11
- ctx.envType !== "local"
12
- ? [{ key: exports.NPM_TOKEN_SECRET_KEY, hidden: true }]
13
- : [],
10
+ // publish credentials don't exist for the local env. Not hidden:
11
+ // the user sets the token via `catladder project secrets-set`
12
+ // (hidden is for machine-provisioned credentials)
13
+ ctx.envType !== "local" ? [{ key: exports.NPM_TOKEN_SECRET_KEY }] : [],
14
14
  getAdditionalEnvVars: () => ({}),
15
15
  };
16
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/npmPackage/index.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AAE5C,QAAA,oBAAoB,GAAG,WAAW,CAAC;AAEnC,QAAA,uBAAuB,GAClC;IACE,IAAI,EAAE,sCAA0B;IAChC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IACpB,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE;IAC5B,oDAAoD;IACpD,GAAG,CAAC,OAAO,KAAK,OAAO;QACrB,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,4BAAoB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC/C,CAAC,CAAC,EAAE;IACR,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;CACjC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/npmPackage/index.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AAE5C,QAAA,oBAAoB,GAAG,WAAW,CAAC;AAEnC,QAAA,uBAAuB,GAClC;IACE,IAAI,EAAE,sCAA0B;IAChC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IACpB,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE;IAC5B,iEAAiE;IACjE,8DAA8D;IAC9D,kDAAkD;IAClD,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,4BAAoB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;IAChE,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;CACjC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ComponentContext } from "../../types/context";
2
+ import type { CatladderJob } from "../../types/jobs";
3
+ export declare const createPagesDeployJobs: (context: ComponentContext) => Promise<CatladderJob[]>;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createPagesDeployJobs = void 0;
4
+ const getAllCacheConfigsFromConfig_1 = require("../../build/cache/getAllCacheConfigsFromConfig");
5
+ const yarn_1 = require("../../build/node/yarn");
6
+ const runner_1 = require("../../runner");
7
+ const base_1 = require("../base");
8
+ const types_1 = require("../types");
9
+ const createPagesDeployJobs = async (context) => {
10
+ var _a, _b, _c;
11
+ const deployConfig = (_a = context.deploy) === null || _a === void 0 ? void 0 : _a.config;
12
+ if (!(0, types_1.isOfDeployType)(deployConfig, "pages")) {
13
+ // should not happen
14
+ throw new Error("deploy config is not pages");
15
+ }
16
+ if (context.pipelineType === "github") {
17
+ // don't fail the whole github generation of a multi-backend project
18
+ console.warn(`component "${context.name}": the pages deploy type is not yet supported on the github backend — no deploy jobs generated`);
19
+ return [];
20
+ }
21
+ // review environments publish under their own path prefix (gitlab
22
+ // parallel deployments) — every merge request gets a site preview
23
+ const pathPrefix = context.environment.envType === "review" ? "mr-$CI_MERGE_REQUEST_IID" : "";
24
+ const publishDir = (_b = deployConfig.publishDir) !== null && _b !== void 0 ? _b : "public";
25
+ const yarnInstall = await (0, yarn_1.getYarnInstall)(context, {
26
+ noCustomPostInstall: true,
27
+ });
28
+ return (0, base_1.createDeployementJobs)(context, {
29
+ deploy: {
30
+ image: (_c = deployConfig.jobImage) !== null && _c !== void 0 ? _c : (0, runner_1.getRunnerImage)("jobs-default"),
31
+ cache: (0, getAllCacheConfigsFromConfig_1.getAllCacheConfigsFromConfig)(context, deployConfig),
32
+ artifacts: { paths: [publishDir] },
33
+ pages: { path_prefix: pathPrefix },
34
+ script: [
35
+ `cd ${context.build.dir}`,
36
+ ...(deployConfig.requiresYarnInstall ? yarnInstall : []),
37
+ ...deployConfig.script,
38
+ // the gitlab environment url should point at the published site
39
+ // (the base deploy job reports $ROOT_URL as environment url)
40
+ `export ROOT_URL="$CI_PAGES_URL${pathPrefix ? `/${pathPrefix}` : ""}"`,
41
+ ],
42
+ variables: {},
43
+ runnerVariables: {
44
+ // exposed so build scripts can adjust e.g. their base url
45
+ PAGES_PREFIX: pathPrefix,
46
+ // a pages deploy runs a full site build — the generic deploy-job
47
+ // resources (200Mi/400Mi) OOM on any real yarn install + build
48
+ KUBERNETES_MEMORY_REQUEST: "1Gi",
49
+ KUBERNETES_MEMORY_LIMIT: "4Gi",
50
+ },
51
+ },
52
+ });
53
+ };
54
+ exports.createPagesDeployJobs = createPagesDeployJobs;
55
+ //# sourceMappingURL=deployJob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployJob.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/pages/deployJob.ts"],"names":[],"mappings":";;;AAAA,iGAA8F;AAC9F,gDAAuD;AACvD,yCAA8C;AAG9C,kCAAgD;AAChD,oCAA0C;AAEnC,MAAM,qBAAqB,GAAG,KAAK,EACxC,OAAyB,EACA,EAAE;;IAC3B,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,MAAM,0CAAE,MAAM,CAAC;IAC5C,IAAI,CAAC,IAAA,sBAAc,EAAC,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC;QAC3C,oBAAoB;QACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QACtC,oEAAoE;QACpE,OAAO,CAAC,IAAI,CACV,cAAc,OAAO,CAAC,IAAI,gGAAgG,CAC3H,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,kEAAkE;IAClE,kEAAkE;IAClE,MAAM,UAAU,GACd,OAAO,CAAC,WAAW,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,MAAM,UAAU,GAAG,MAAA,YAAY,CAAC,UAAU,mCAAI,QAAQ,CAAC;IAEvD,MAAM,WAAW,GAAG,MAAM,IAAA,qBAAc,EAAC,OAAO,EAAE;QAChD,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAC;IAEH,OAAO,IAAA,4BAAqB,EAAC,OAAO,EAAE;QACpC,MAAM,EAAE;YACN,KAAK,EAAE,MAAA,YAAY,CAAC,QAAQ,mCAAI,IAAA,uBAAc,EAAC,cAAc,CAAC;YAC9D,KAAK,EAAE,IAAA,2DAA4B,EAAC,OAAO,EAAE,YAAY,CAAC;YAC1D,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE;YAClC,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;YAClC,MAAM,EAAE;gBACN,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;gBACzB,GAAG,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,GAAG,YAAY,CAAC,MAAM;gBACtB,gEAAgE;gBAChE,6DAA6D;gBAC7D,iCAAiC,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;aACvE;YACD,SAAS,EAAE,EAAE;YACb,eAAe,EAAE;gBACf,0DAA0D;gBAC1D,YAAY,EAAE,UAAU;gBACxB,iEAAiE;gBACjE,+DAA+D;gBAC/D,yBAAyB,EAAE,KAAK;gBAChC,uBAAuB,EAAE,KAAK;aAC/B;SACF;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAnDW,QAAA,qBAAqB,yBAmDhC"}
@@ -0,0 +1,2 @@
1
+ import type { DeployConfigPages, DeployTypeDefinition } from "..";
2
+ export declare const PAGES_DEPLOY_TYPE: DeployTypeDefinition<DeployConfigPages>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PAGES_DEPLOY_TYPE = void 0;
4
+ const deployJob_1 = require("./deployJob");
5
+ exports.PAGES_DEPLOY_TYPE = {
6
+ jobs: deployJob_1.createPagesDeployJobs,
7
+ // a broken site publish should not block the rest of the pipeline
8
+ defaults: () => ({ allowFailure: true }),
9
+ additionalSecretKeys: () => [],
10
+ getAdditionalEnvVars: () => ({}),
11
+ };
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/pages/index.ts"],"names":[],"mappings":";;;AACA,2CAAoD;AAEvC,QAAA,iBAAiB,GAA4C;IACxE,IAAI,EAAE,iCAAqB;IAC3B,kEAAkE;IAClE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IACxC,oBAAoB,EAAE,GAAG,EAAE,CAAC,EAAE;IAC9B,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;CACjC,CAAC"}
@@ -26,5 +26,10 @@ export type DeployConfigBase = {
26
26
  *
27
27
  */
28
28
  runnerVariables?: Record<string, string>;
29
+ /**
30
+ * whether the pipeline may continue when this deploy fails
31
+ * (gitlab allow_failure)
32
+ */
33
+ allowFailure?: boolean;
29
34
  };
30
35
  export type AllowUnknownProps<T extends Record<string, unknown>> = T & Record<string, unknown>;
@@ -26,4 +26,8 @@ export type DeployConfigCustom = {
26
26
  * image to use
27
27
  */
28
28
  jobImage?: GitlabJobImage;
29
+ /**
30
+ * job artifact paths the deploy produces (relative to the repo root)
31
+ */
32
+ artifactsPaths?: string[];
29
33
  } & DeployConfigBase & WithCacheConfig;
@@ -3,17 +3,19 @@ import type { DeployConfigDockerTag } from "./dockerTag";
3
3
  import type { DeployConfigCloudRun } from "./googleCloudRun";
4
4
  import type { DeployConfigKubernetes } from "./kubernetes";
5
5
  import type { DeployConfigNpmPackage } from "./npmPackage";
6
+ import type { DeployConfigPages } from "./pages";
6
7
  export * from "./custom";
7
8
  export * from "./googleCloudRun";
8
9
  export * from "./kubernetes";
9
10
  export * from "./dockerTag";
10
11
  export * from "./npmPackage";
11
- export type DeployConfig = DeployConfigKubernetes | DeployConfigCustom | DeployConfigCloudRun | DeployConfigDockerTag | DeployConfigNpmPackage;
12
+ export * from "./pages";
13
+ export type DeployConfig = DeployConfigKubernetes | DeployConfigCustom | DeployConfigCloudRun | DeployConfigDockerTag | DeployConfigNpmPackage | DeployConfigPages;
12
14
  export type DeployConfigType = DeployConfig["type"];
13
15
  export type DeployConfigGeneric<T extends DeployConfigType> = Extract<DeployConfig, {
14
16
  type: T;
15
17
  }>;
16
- export declare const isOfDeployType: <T extends ("custom" | "kubernetes" | "dockerTag" | "google-cloudrun" | "npmPackage")[]>(t: DeployConfig | false | null | undefined, ...types: T) => t is Extract<DeployConfigCustom, {
18
+ export declare const isOfDeployType: <T extends ("custom" | "kubernetes" | "dockerTag" | "google-cloudrun" | "npmPackage" | "pages")[]>(t: DeployConfig | false | null | undefined, ...types: T) => t is Extract<DeployConfigCustom, {
17
19
  type: T[number];
18
20
  }> | Extract<DeployConfigDockerTag, {
19
21
  type: T[number];
@@ -23,5 +25,7 @@ export declare const isOfDeployType: <T extends ("custom" | "kubernetes" | "dock
23
25
  type: T[number];
24
26
  }> | Extract<DeployConfigNpmPackage, {
25
27
  type: T[number];
28
+ }> | Extract<DeployConfigPages, {
29
+ type: T[number];
26
30
  }>;
27
- export declare const getDeployConfigType: (t: DeployConfig | false | null | undefined) => "custom" | "kubernetes" | "dockerTag" | "google-cloudrun" | "npmPackage";
31
+ export declare const getDeployConfigType: (t: DeployConfig | false | null | undefined) => "custom" | "kubernetes" | "dockerTag" | "google-cloudrun" | "npmPackage" | "pages";
@@ -20,6 +20,7 @@ __exportStar(require("./googleCloudRun"), exports);
20
20
  __exportStar(require("./kubernetes"), exports);
21
21
  __exportStar(require("./dockerTag"), exports);
22
22
  __exportStar(require("./npmPackage"), exports);
23
+ __exportStar(require("./pages"), exports);
23
24
  const isOfDeployType = (t, ...types) => {
24
25
  return t && types.includes(t.type) ? true : false;
25
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAMA,2CAAyB;AACzB,mDAAiC;AACjC,+CAA6B;AAC7B,8CAA4B;AAC5B,+CAA6B;AAetB,MAAM,cAAc,GAAG,CAC5B,CAA0C,EAC1C,GAAG,KAAQ,EACsC,EAAE;IACnD,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACpD,CAAC,CAAC;AALW,QAAA,cAAc,kBAKzB;AAEK,MAAM,mBAAmB,GAAG,CACjC,CAA0C,EAC1C,EAAE;IACF,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACzB,OAAO,CAAC,CAAC,IAAI,CAAC;AAChB,CAAC,CAAC;AALW,QAAA,mBAAmB,uBAK9B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAOA,2CAAyB;AACzB,mDAAiC;AACjC,+CAA6B;AAC7B,8CAA4B;AAC5B,+CAA6B;AAC7B,0CAAwB;AAgBjB,MAAM,cAAc,GAAG,CAC5B,CAA0C,EAC1C,GAAG,KAAQ,EACsC,EAAE;IACnD,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACpD,CAAC,CAAC;AALW,QAAA,cAAc,kBAKzB;AAEK,MAAM,mBAAmB,GAAG,CACjC,CAA0C,EAC1C,EAAE;IACF,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACzB,OAAO,CAAC,CAAC,IAAI,CAAC;AAChB,CAAC,CAAC;AALW,QAAA,mBAAmB,uBAK9B"}
@@ -0,0 +1,37 @@
1
+ import type { WithCacheConfig } from "../../build";
2
+ import type { GitlabJobImage } from "../../types";
3
+ import type { DeployConfigBase } from "./base";
4
+ export type DeployConfigPages = {
5
+ /**
6
+ * publishes the component as a static site on gitlab pages.
7
+ * "Deploying" means: run the build script and publish its output
8
+ * directory as the pages artifact.
9
+ *
10
+ * Review environments automatically publish under an `mr-<iid>` path
11
+ * prefix (gitlab parallel deployments), giving every merge request
12
+ * its own site preview. The gitlab environment url points at the
13
+ * published pages url.
14
+ *
15
+ * Not yet supported on the github backend (github pages has no
16
+ * parallel-deployment equivalent for MR previews; a deploy via
17
+ * actions/deploy-pages may come later).
18
+ */
19
+ type: "pages";
20
+ /**
21
+ * the script producing the static site
22
+ */
23
+ script: string[];
24
+ /**
25
+ * the directory the script publishes to, relative to the repo root
26
+ * @default "public"
27
+ */
28
+ publishDir?: string;
29
+ /**
30
+ * whether the script needs `yarn install` first
31
+ */
32
+ requiresYarnInstall?: boolean;
33
+ /**
34
+ * image to use
35
+ */
36
+ jobImage?: GitlabJobImage;
37
+ } & DeployConfigBase & WithCacheConfig;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=pages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/types/pages.ts"],"names":[],"mappings":""}
@@ -8,6 +8,9 @@ export type GitlabEnvironment = Omit<Exclude<JobTemplate["environment"], undefin
8
8
  export interface GitlabJobDef extends Pick<JobTemplate, "after_script" | "allow_failure" | "artifacts" | "before_script" | "coverage" | "dependencies" | "environment" | "except" | "hooks" | "image" | "interruptible" | "needs" | "only" | "parallel" | "release" | "resource_group" | "retry" | "rules" | "script" | "services" | "stage" | "tags" | "trigger" | "variables"> {
9
9
  stage: JobTemplate["stage"];
10
10
  rules?: GitlabRule[];
11
+ pages?: boolean | {
12
+ path_prefix?: string;
13
+ };
11
14
  cache?: GitlabJobCache | GitlabJobCache[];
12
15
  artifacts?: Artifacts;
13
16
  tags?: string[];
@@ -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"> & {
7
+ export type DeployJobDefinition = Pick<CatladderJobSpec, "script" | "variables" | "image" | "artifacts" | "services" | "runnerVariables" | "allow_failure" | "pages"> & {
8
8
  cache?: CacheConfig[];
9
9
  };
10
10
  export type StopJobDefinition = Pick<CatladderJobSpec, "script" | "variables" | "image" | "runnerVariables">;
@@ -191,6 +191,14 @@ export type GitlabJobFields = {
191
191
  * whether failures are allowed
192
192
  */
193
193
  allow_failure?: boolean;
194
+ /**
195
+ * gitlab pages publishing for this job (lowered only by the gitlab
196
+ * backend); `path_prefix` enables parallel deployments (e.g. MR
197
+ * previews)
198
+ */
199
+ pages?: boolean | {
200
+ path_prefix?: string;
201
+ };
194
202
  /** */
195
203
  when?: GitlabRule["when"];
196
204
  rules?: GitlabRule[];
@@ -1 +1 @@
1
- {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/types/jobs.ts"],"names":[],"mappings":";;;AAGA,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;AAsNX;;;;;;;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"}
1
+ {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/types/jobs.ts"],"names":[],"mappings":";;;AAGA,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;AA6NX;;;;;;;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"}
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: catladder-deploys
3
- description: Configuring how a component is deployed in a catladder project — the `deploy` config in catladder.ts (deploy types kubernetes / google-cloudrun / npmPackage / dockerTag / custom, manual vs auto deploy, resources, autoscaling, health checks, CloudSQL/MongoDB, Cloud Run services/jobs/worker pools, cron jobs). Use when adding or changing a component's deploy, choosing a deploy target, setting resources/replicas/autoscaling, wiring a database, adding cron/scheduled jobs, publishing a component as an npm package, or making a deploy manual. Triggers on "deploy config", "deploy type", "kubernetes", "cloud run", "cloudrun", "autoscale", "resources", "replicas", "cloudsql", "mongodb", "cronjob", "manual deploy", "npm package", "npm publish", "publish to npm".
3
+ description: Configuring how a component is deployed in a catladder project — the `deploy` config in catladder.ts (deploy types kubernetes / google-cloudrun / npmPackage / pages / dockerTag / custom, manual vs auto deploy, resources, autoscaling, health checks, CloudSQL/MongoDB, Cloud Run services/jobs/worker pools, cron jobs). Use when adding or changing a component's deploy, choosing a deploy target, setting resources/replicas/autoscaling, wiring a database, adding cron/scheduled jobs, publishing a component as an npm package, publishing a site on gitlab pages, or making a deploy manual. Triggers on "deploy config", "deploy type", "kubernetes", "cloud run", "cloudrun", "autoscale", "resources", "replicas", "cloudsql", "mongodb", "cronjob", "manual deploy", "npm package", "npm publish", "publish to npm", "gitlab pages", "static site", "docs site", "site preview".
4
4
  ---
5
5
 
6
6
  # Component deploys with catladder
@@ -18,7 +18,7 @@ components: {
18
18
  dir: "backend",
19
19
  build: { /* see catladder-builds */ },
20
20
  deploy: {
21
- type: "kubernetes", // kubernetes | google-cloudrun | npmPackage | dockerTag | custom
21
+ type: "kubernetes", // kubernetes | google-cloudrun | npmPackage | pages | dockerTag | custom
22
22
  cluster: { type: "gcloud", name: "…", projectId: "…", region: "…" },
23
23
  values: { application: { replicas: 2 } },
24
24
  },
@@ -33,6 +33,7 @@ components: {
33
33
  | `kubernetes` | a GKE cluster via Helm | `cluster` |
34
34
  | `google-cloudrun` | Google Cloud Run | `projectId`, `region` |
35
35
  | `npmPackage` | publishes the component to an npm registry | nothing — see below |
36
+ | `pages` | publishes a static site on gitlab pages | `script` — see below |
36
37
  | `dockerTag` | tags an image (no runtime) | `tag` — rarely used, not generally recommended |
37
38
  | `custom` | your own script | `requiresDocker`, `script` |
38
39
 
@@ -103,6 +104,34 @@ catladder secret, see `catladder-secrets`). Disable the stage
103
104
  environment as shown — a tagged release then publishes `latest`
104
105
  directly from the auto-deploying prod env.
105
106
 
107
+ ## GitLab pages sites
108
+
109
+ `type: "pages"` publishes a static site (docs, storybook, coverage
110
+ report) on gitlab pages: the deploy job runs your build `script` and
111
+ publishes `publishDir` (default `"public"`). Review environments
112
+ automatically publish under an `mr-<iid>` path prefix — every merge
113
+ request gets its own site preview (the prefix is exposed to the build
114
+ as `$PAGES_PREFIX`). The gitlab environment url points at the
115
+ published site. GitLab-only for now.
116
+
117
+ ```ts
118
+ docs: {
119
+ dir: "docs",
120
+ env: { stage: false, prod: false }, // pages exist on main + MRs
121
+ build: false,
122
+ deploy: {
123
+ type: "pages",
124
+ requiresYarnInstall: true,
125
+ script: ["yarn workspace docs build"],
126
+ },
127
+ },
128
+ ```
129
+
130
+ Pages deploys default to `allowFailure: true` (a broken site publish
131
+ should not block the pipeline). `allowFailure` is also available on
132
+ every other deploy type, and custom deploys can now declare
133
+ `artifactsPaths` for output they produce.
134
+
106
135
  ## Full option reference
107
136
 
108
137
  See [references/deploy-types.md](references/deploy-types.md) for every
@@ -56,6 +56,16 @@ resources with `yarn catladder project setup`; detect drift with
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
  - Requires the `NPM_TOKEN` secret (managed like any catladder secret). Disable staging on the component (`env: { stage: false }`) so tagged releases publish directly.
58
58
 
59
+ ## `pages`
60
+
61
+ - `type: "pages"` — **required**. Publishes a static site on gitlab pages (not yet supported on the github backend).
62
+ - `script: string[]` — **required**; produces the site.
63
+ - `publishDir?: string` — output directory relative to the repo root, default `"public"`.
64
+ - `requiresYarnInstall?: boolean` — run `yarn install` first.
65
+ - `jobImage?: GitlabJobImage`; also accepts `cache`.
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
+ - Defaults to `allowFailure: true`.
68
+
59
69
  ## `dockerTag`
60
70
 
61
71
  - `type: "dockerTag"`, `tag: string` — **required**. Adds a custom tag on the image repo to deploy it. Only used in one project historically; not generally recommended (runtime env vars must be coordinated manually).