Documentation Deployment Procedure
This runbook describes the formal, secure, and deterministic procedure to publish the RAPID OS v3 documentation portal to GitHub Pages.
1. Scope and Governance
- Portal: Canonical RAPID OS v3.1.1 documentation.
- Framework: Docusaurus 3 with Node.js 20.
- Hosting: GitHub Pages (
alyconr.github.io/Rapid-OS/). - Mechanism: Decoupled deployment via GitHub Actions (
.github/workflows/docs-deploy.yml). - Required approval: Deploying to production requires explicit authorization from the repository owner.
2. Separation of Responsibilities
| Component | Workflow | Event | Permissions |
|---|---|---|---|
| CI Validation | .github/workflows/docs.yml | Pull Request and Push to main | contents: read |
| Publication | .github/workflows/docs-deploy.yml | workflow_dispatch only (manual) | contents: read, pages: write, id-token: write |
Publication is never automatic.
docs-deploy.ymlis launched by hand from Actions; a merge tomaindoes not publish the portal. After tagging a release, running it is a mandatory step: without it, the published portal keeps showing the previous version (see the release checklist).
Security Note: No Pull Request or fork has access to publish to GitHub Pages. Temporary OIDC tokens are only issued in the protected
github-pagesenvironment.
3. Technical Preconditions (Pre-flight Checklist)
Before authorizing or running a deployment, the team must verify:
- Unit and E2E Test Suite Green:
python -m unittest discover tests
- Docusaurus Typecheck and Build Successful:
cd websitenpm cinpm run typechecknpm run build
- Static Artifact Validation:
- Confirm that
website/build/index.htmlexists. - Confirm that
website/build/404.htmlexists. - Confirm that
website/build/sitemap.xmlcontains URLs with the/Rapid-OS/prefix. - Verify there are no leaks of
localhostor absolute development paths (file:///).
- Confirm that
- Production Configuration in
website/docusaurus.config.ts:url: 'https://alyconr.github.io'baseUrl: '/Rapid-OS/'trailingSlash: falseonBrokenLinks: 'throw'
- GitHub Pages Configuration in the Repository:
- Settings → Pages → Source: GitHub Actions.
4. Running the Controlled Manual Deployment (workflow_dispatch)
Deploying to production is strictly manual and requires the code to be on the main branch:
- Navigate to Actions in the GitHub repository.
- Select the Deploy Documentation workflow.
- Click Run workflow.
- Select the
mainbranch. - Confirm the run.
- The workflow will sequentially execute:
build: Compilation and static verification withcontents: readpermissions.deploy: Deployment to GitHub Pages withpages: writeandid-token: writepermissions.smoke-test: Automatic post-deployment validation through live HTTP tests.
5. Post-Deployment Verification (Smoke Testing)
Once the deployment workflow run has completed:
- Job Status in GitHub Actions:
- Verify that the
buildjob and thedeployjob finished with code 0. - Inspect the URL generated in the output of the
deploystep.
- Verify that the
- Production HTTP Smoke Test:
- Home access:
https://alyconr.github.io/Rapid-OS/(HTTP 200). - CLI Reference access:
https://alyconr.github.io/Rapid-OS/cli(HTTP 200). - Labs access:
https://alyconr.github.io/Rapid-OS/tutorials/(HTTP 200). - Custom 404 page access:
https://alyconr.github.io/Rapid-OS/non-existent-page(HTTP 404 with the Docusaurus layout). sitemap.xmlinspection:https://alyconr.github.io/Rapid-OS/sitemap.xml(HTTP 200).
- Home access:
- Running the Automated Smoke Tests:
RAPID_OS_LIVE_DOCS_URL=https://alyconr.github.io/Rapid-OS python -m unittest tests.test_documentation_deployment.TestLiveDocsSmoke
6. Logging and Notification
- Note the deployed commit SHA in the release log.
- Notify in the project channel that the documentation version is live.