2026-03-15 03:30:35 +02:00
|
|
|
# Docs Source Deployment
|
|
|
|
|
|
|
|
|
|
This repo publishes docs **source artifacts**.
|
|
|
|
|
|
|
|
|
|
Rendering and hosting still happen in `openchamber-website` (`apps/docs`).
|
|
|
|
|
|
|
|
|
|
## Workflow
|
|
|
|
|
|
|
|
|
|
Use `.github/workflows/docs-source.yml`.
|
|
|
|
|
|
|
|
|
|
Triggers:
|
|
|
|
|
|
|
|
|
|
- push to `main` when docs source changes
|
|
|
|
|
- release published
|
|
|
|
|
- manual `workflow_dispatch`
|
|
|
|
|
|
|
|
|
|
Outputs:
|
|
|
|
|
|
|
|
|
|
- validates docs (`bun run docs:validate`)
|
|
|
|
|
- creates `openchamber-docs-source-<sha>.tar.gz`
|
|
|
|
|
- uploads archive as workflow artifact
|
|
|
|
|
- on release/manual with tag, uploads archive to release assets
|
|
|
|
|
|
2026-05-23 00:33:39 +03:00
|
|
|
## Cross-repo sync trigger
|
2026-03-15 03:30:35 +02:00
|
|
|
|
2026-05-23 00:33:39 +03:00
|
|
|
After validating and packaging, the workflow sends a `repository_dispatch` event
|
|
|
|
|
to `openchamber-website` so it re-syncs and redeploys the docs. This fires on
|
|
|
|
|
**every** trigger above — push to `main` (docs changes), release, and manual
|
|
|
|
|
`workflow_dispatch` — so a normal commit to docs auto-updates the live site.
|
2026-03-15 03:30:35 +02:00
|
|
|
|
2026-05-23 00:33:39 +03:00
|
|
|
Required secret in this repo:
|
2026-03-15 03:30:35 +02:00
|
|
|
|
2026-05-23 00:33:39 +03:00
|
|
|
- `OPENCHAMBER_WEBSITE_REPO_TOKEN` — a token with `contents: write` (classic
|
|
|
|
|
`repo` scope, or fine-grained with Contents: read & write) on
|
|
|
|
|
`openchamber/openchamber-website`. **Without it the dispatch step is skipped**
|
|
|
|
|
(it logs "not set" and exits cleanly), so the site will never auto-update.
|
|
|
|
|
This is the most common reason the pipeline silently does nothing.
|
2026-03-15 03:30:35 +02:00
|
|
|
|
|
|
|
|
Event sent:
|
|
|
|
|
|
|
|
|
|
- `event_type: docs_source_updated`
|
|
|
|
|
|
|
|
|
|
Payload includes:
|
|
|
|
|
|
|
|
|
|
- `source_repo`
|
2026-05-23 00:33:39 +03:00
|
|
|
- `source_ref` — the ref the website checks out from `openchamber` (`main` on a
|
|
|
|
|
push, the tag on a release)
|
2026-03-15 03:30:35 +02:00
|
|
|
- `archive_name`
|
|
|
|
|
|
2026-05-23 00:33:39 +03:00
|
|
|
`openchamber-website`'s `deploy-docs.yml` listens for this event
|
|
|
|
|
(`repository_dispatch: types: [docs_source_updated]`), checks out
|
|
|
|
|
`openchamber` at `source_ref`, runs `docs:sync`, builds `apps/docs`, and deploys
|
|
|
|
|
to Cloudflare Pages. That repo needs its own secrets: `OPENCHAMBER_REPO_TOKEN`
|
|
|
|
|
(read access to this repo), `CLOUDFLARE_API_TOKEN`, and `CLOUDFLARE_ACCOUNT_ID`.
|