Skip to main content

Pages

type: "pages" publishes a static site — docs, a storybook, a coverage report — on GitLab pages or GitHub pages. The deploy job runs your build script and publishes the output directory (publishDir, default public).

catladder.ts
components: {
docs: {
dir: "docs",
// pages only exist on the main branch (+ MR previews)
env: { stage: false, prod: false },
build: false,
deploy: {
type: "pages",
requiresInstall: true,
script: ["yarn workspace docs build"],
// publishDir: "public", // default
},
},
},

Pages deploys default to allowFailure: true — a broken site publish should not block the rest of the pipeline. Override with allowFailure: false.

GitLab: a site preview per merge request

On GitLab, every merge request gets its own site preview: review environments publish under an mr-<iid> path prefix (GitLab parallel deployments). The prefix is exposed to your build as $PAGES_PREFIX in case the site needs to adjust its base url. The GitLab environment url points at the published site.

GitHub: one site per repository

On GitHub the site is published with actions/deploy-pages. Two consequences:

  • Set the repository's Pages source to "GitHub Actions" once (Settings → Pages → Build and deployment → Source). Catladder cannot do this for you, and the deploy job fails until it is set.
  • No per-pull-request previews — GitHub serves a single site per repository, so there is no equivalent of GitLab's parallel deployments. Disable the review environment for the component (env: { review: false }) if you were relying on previews.