mirror of
https://github.com/hanzo-docs/docs.git
synced 2026-10-29 07:01:44 +00:00
The build already produced a static export at apps/gui-docs/out; only the last step differed from every other site we serve. It uploaded that directory to a Cloudflare Pages project, which made gui.hanzo.ai the one host in the hanzo.ai zone still resolving off our own ingress — 1 record of 150, measured. A page published there cannot be rebuilt or rolled back from here. The site action is the one publish path: it reads the deploy credential from KMS at run time and syncs to s3://hanzo-sites/hanzo/gui, which universe's gui-static route serves. That removes the Cloudflare token read and the wrangler project-create step with it — two things to hold and rotate, for a step that is now one action. Trigger narrowed to main. --production-branch=main made a push to any other branch a Pages preview; the Sites plane keeps one prefix per slug, so leaving `dev` in the list would have let a side branch overwrite what is live. No dev branch exists on either remote today, which is what makes this safe to state rather than guess.
58 lines
1.8 KiB
YAML
58 lines
1.8 KiB
YAML
name: Deploy GUI Docs
|
|
|
|
# gui.hanzo.ai, served from the object-store plane.
|
|
#
|
|
# `pnpm build --filter=gui-docs` writes a static export to apps/gui-docs/out, so
|
|
# the site action syncs that directory to s3://hanzo-sites/hanzo/gui and the
|
|
# `gui-static` route in universe serves it. No image, no pod.
|
|
#
|
|
# The host resolved to a Cloudflare Pages project, which was the last DNS record
|
|
# in the hanzo.ai zone that did — everything else already answers from our own
|
|
# ingress on the *.hanzo.ai wildcard. A page published there could not be
|
|
# rebuilt or rolled back from here.
|
|
#
|
|
# main only. The Pages deploy passed --production-branch=main, which made a push
|
|
# to any other branch a preview; the Sites plane has one prefix per slug, so the
|
|
# same trigger would have let a side branch overwrite what is live.
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
paths:
|
|
- 'apps/gui-docs/**'
|
|
- 'packages/**'
|
|
- 'pnpm-lock.yaml'
|
|
- '.hanzo/workflows/deploy-gui-docs.yml'
|
|
workflow_dispatch:
|
|
|
|
concurrency:
|
|
group: deploy-gui-docs
|
|
cancel-in-progress: false
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: hanzo-docs-build-linux-amd64
|
|
permissions:
|
|
contents: read
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: pnpm/action-setup@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 22
|
|
cache: pnpm
|
|
- uses: oven-sh/setup-bun@v2
|
|
- run: pnpm install --frozen-lockfile
|
|
- run: pnpm build --filter=gui-docs
|
|
env:
|
|
NODE_OPTIONS: '--max-old-space-size=8192'
|
|
|
|
- name: Publish to the Sites plane
|
|
uses: https://git.hanzo.ai/hanzoai/ci/.github/actions/site@v1
|
|
with:
|
|
slug: gui
|
|
dir: apps/gui-docs/out
|
|
env:
|
|
KMS_CLIENT_ID: ${{ secrets.KMS_CLIENT_ID }}
|
|
KMS_CLIENT_SECRET: ${{ secrets.KMS_CLIENT_SECRET }}
|