GitHub Pages
TinyLoop wiki deployment is a CI-driven static-site publish pipeline, not a manually pushed artifact workflow. The wiki source of truth is wiki/, and deployment is orchestrated by .github/workflows/wiki.yml.
Deployment architecture
At a high level:
- checkout repository
- restore/install Node dependencies for
wiki/ - run Docusaurus build
- upload build artifact to Pages
- deploy via GitHub Pages environment
This design separates content changes from hosting mechanics and keeps deployment reproducible from git state alone.
Local parity with CI
Use the same commands locally that CI uses:
cd /home/runner/work/tinyloop/tinyloop/wiki
npm ci
npm run typecheck
npm run build
Outputs:
- static site:
wiki/build - typecheck gate: TypeScript/Docusaurus config correctness
npm ci is preferred over npm install for release parity because it enforces lockfile-resolved dependency versions.
Base URL and repository topology
Docusaurus config resolves URL/base path from repository context. This matters because TinyLoop can be published as:
- user/org pages root (
https://<owner>.github.io/) - project pages subpath (
https://<owner>.github.io/<repo>/)
Runtime-configurable base-url logic prevents hand-editing config when repository ownership/name changes and avoids broken asset links after forks.
i18n build implications
The build includes all configured locales (en, zh-TW, ko, ja).
Operational consequence:
- missing locale-specific docs do not always fail build (depending on fallback behavior and broken-link policy), but they can degrade user experience via mixed-language fallback.
- structural docs changes (sidebar/category/doc ids) should be validated against all locales, not just English page render.
Why GitHub Actions + Pages
This deployment path is chosen for:
- reproducibility (build from exact commit)
- auditable release history in workflow logs
- no local machine credential dependency for publishing
- low operational overhead for documentation-only hosting
Trade-offs and limitations
- GitHub Pages is static hosting only; no runtime server-side routing logic.
- build-time failures block publication, so doc config regressions can delay unrelated content updates.
- dependency vulnerabilities in the Node toolchain do not directly ship to runtime users, but still affect CI hygiene and should be tracked.
Source-control boundaries
Commit:
wiki/source and config- workflow definitions (
.github/workflows/wiki.yml) - lockfile (
wiki/package-lock.json) when dependencies intentionally change
Do not commit:
wiki/node_modules/wiki/build/
Keeping generated output out of git ensures deterministic rebuilds and cleaner review diffs.
Operational checklist before merge
npm run typecheckpassesnpm run buildpasses for all locales- no accidental generated-file churn (especially lockfile) unless intentional
- sidebar/doc-id changes verified against route links and navigation
- workflow file still points to
wiki/working directory