Operations — GitHub Pages
The marketing site lives in site/ (Astro + React + Tailwind) and is
built and published by .github/workflows/pages.yml to
https://sachncs.github.io/morel/.
One-time repo setting
GitHub Pages must be turned on for the repository so the workflow's
deploy-pages action has somewhere to publish. Only a repo admin
can do this from the web UI:
- Open Settings → Pages.
- Under Build and deployment → Source, choose GitHub Actions.
- Save. (No branch pick is needed once the source is Actions.)
After this is set once, every push to master rebuilds and
publishes the site automatically.
Verifying a deployment
The workflow's deploy job runs against the protected
github-pages environment; check the run summary for the live URL.
The URL is also pinned in pyproject.toml
([project.urls] Homepage).
If the workflow's build job succeeds but the deploy step times out, verify that Pages is enabled in repo settings — see "One-time repo setting" above.
How the workflow works
The pages.yml workflow has two jobs:
build— runs on a fresh ubuntu runner, sets up Node 20 and pnpm, installs the site dependencies withpnpm install --frozen-lockfile, runspnpm build(withGITHUB_PAGES=1so asset URLs are prefixed with/morel/), and uploads the resultingsite/distdirectory as a Pages artifact.deploy— depends onbuild, downloads the artifact, and publishes it throughactions/deploy-pages@v5.
The concurrency: group: pages, cancel-in-progress: true block
cancels in-progress runs from the same branch, so a fast-follow push
does not race a slow build.
Local preview
Run pnpm dev inside site/ to preview the marketing site locally:
cd site
pnpm install
pnpm dev # http://localhost:5173
For a production preview:
pnpm build
GITHUB_PAGES=1 pnpm build # uses /morel/ asset prefix
pnpm preview
The Markdown in docs/ is the source for the Astro-rendered documentation.
Run pnpm --dir site dev from the repo root to browse the product site and
documentation together locally.