# Build the docs/marketing website and deploy it to Cloudflare Pages. # # One Pages project, two branches (no second project, no sub-folders — Pages # maps a branch to a *subdomain alias*, not a path): # main → production (the project's production branch → relplay.org) # website → preview (alias `website..pages.dev`; a custom # `staging.relplay.org` can be attached to it) # wrangler treats `--branch=` as a production deploy and any # other branch as a preview, so a single workflow covers both — the Pages # project's production branch MUST be set to `main`. # # Pure-Node build: the `.cast` recordings are committed, so no cargo/Rust is # needed here. Runs on the bare `ci-public` runner (node already present; pnpm # via corepack, pinned by package.json's `packageManager`). No job container — # unlike the Rust gate, this needs none. # # Required Actions secrets (set once in the repo/org settings): # CLOUDFLARE_API_TOKEN — token with "Cloudflare Pages: Edit" on the account # CLOUDFLARE_ACCOUNT_ID — the account id that owns the Pages project name: website on: push: branches: [main, website] # Only when the site (or this workflow) actually changes — crate-only # pushes don't redeploy the site. paths: - 'website/**' - '.gitea/workflows/website.yaml' workflow_dispatch: jobs: deploy: runs-on: ci-public defaults: run: working-directory: website steps: - uses: actions/checkout@v4 - name: preflight — toolchain present run: | node --version corepack --version - name: enable pnpm (pinned by packageManager) run: corepack enable - name: install run: pnpm install --frozen-lockfile - name: build run: pnpm build - name: deploy to Cloudflare Pages shell: bash env: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} BRANCH: ${{ github.ref_name }} run: | set -euo pipefail # `dist` is relative to website/ (the working-directory). The branch # name decides production (main) vs preview (anything else). npx --yes wrangler@4 pages deploy dist \ --project-name=relplay \ --branch="$BRANCH"