Procedimiento de Despliegue de Documentación
Este runbook describe el procedimiento formal, seguro y determinista para publicar el portal de documentación de RAPID OS v3 en GitHub Pages.
1. Alcance y Gobernanza
- Portal: Documentación canónica de RAPID OS v3.1.1.
- Framework: Docusaurus 3 con Node.js 20.
- Hosting: GitHub Pages (
alyconr.github.io/Rapid-OS/). - Mecanismo: Despliegue desacoplado mediante GitHub Actions (
.github/workflows/docs-deploy.yml). - Aprobación requerida: El despliegue a producción requiere autorización explícita del propietario del repositorio.
2. Separación de Responsabilidades
| Componente | Workflow | Evento | Permisos |
|---|---|---|---|
| Validación CI | .github/workflows/docs.yml | Pull Request y Push a main | contents: read |
| Publicación | .github/workflows/docs-deploy.yml | Solo workflow_dispatch (manual) | contents: read, pages: write, id-token: write |
La publicación nunca es automática.
docs-deploy.ymlse lanza a mano desde Actions; un merge amainno publica el portal. Tras etiquetar una release, ejecutarlo es un paso obligatorio: sin él, el portal publicado sigue mostrando la versión anterior (ver checklist de release).
Nota de Seguridad: Ningún Pull Request ni fork tiene acceso a publicar en GitHub Pages. Los tokens OIDC temporales solo se emiten en el entorno protegido
github-pages.
3. Precondiciones Técnicas (Pre-flight Checklist)
Antes de autorizar o ejecutar un despliegue, el equipo debe verificar:
- Suite de Pruebas Unitaria y E2E Verde:
python -m unittest discover tests
- Typecheck y Build de Docusaurus Exitosos:
cd websitenpm cinpm run typechecknpm run build
- Validación de Artefactos Estáticos:
- Confirmar que
website/build/index.htmlexiste. - Confirmar que
website/build/404.htmlexiste. - Confirmar que
website/build/sitemap.xmlcontiene URLs con prefijo/Rapid-OS/. - Verificar la ausencia de fugas de
localhosto rutas absolutas de desarrollo (file:///).
- Confirmar que
- Configuración de Producción en
website/docusaurus.config.ts:url: 'https://alyconr.github.io'baseUrl: '/Rapid-OS/'trailingSlash: falseonBrokenLinks: 'throw'
- Configuración de GitHub Pages en el Repositorio:
- Settings → Pages → Source: GitHub Actions.
4. Ejecución del Despliegue Manual Controlado (workflow_dispatch)
El despliegue a producción es estrictamente manual y requiere que el código se encuentre en la rama main:
- Navegar a Actions en el repositorio GitHub.
- Seleccionar el workflow Deploy Documentation.
- Hacer clic en Run workflow.
- Seleccionar la rama
main. - Confirmar la ejecución.
- El workflow ejecutará secuencialmente:
build: Compilación y verificación estática con permisoscontents: read.deploy: Despliegue en GitHub Pages con permisospages: writeeid-token: write.smoke-test: Validación automática post-despliegue mediante pruebas HTTP en vivo.
5. Verificación Post-Despliegue (Smoke Testing)
Una vez completada la ejecución del workflow de despliegue:
- Estado del Job en GitHub Actions:
- Verificar que el job
buildy el jobdeployconcluyeron con código 0. - Inspeccionar la URL generada en la salida del step
deploy.
- Verificar que el job
- Smoke Test HTTP de Producción:
- Acceso a Home:
https://alyconr.github.io/Rapid-OS/(código HTTP 200). - Acceso a CLI Reference:
https://alyconr.github.io/Rapid-OS/cli(código HTTP 200). - Acceso a Laboratorios:
https://alyconr.github.io/Rapid-OS/tutorials/(código HTTP 200). - Acceso a Página 404 personalizada:
https://alyconr.github.io/Rapid-OS/non-existent-page(código HTTP 404 con layout de Docusaurus). - Inspección de
sitemap.xml:https://alyconr.github.io/Rapid-OS/sitemap.xml(código HTTP 200).
- Acceso a Home:
- Ejecución de Smoke Tests Automatizados:
RAPID_OS_LIVE_DOCS_URL=https://alyconr.github.io/Rapid-OS python -m unittest tests.test_documentation_deployment.TestLiveDocsSmoke
6. Registro y Notificación
- Anotar el commit SHA desplegado en la bitácora de release.
- Notificar en el canal del proyecto que la versión de documentación está en línea.