ci(pages): publicar prototipo educativo

Co-authored-by: wsf <alejandro.sartorio@gmail.com>
Signed-off-by: wsf <alejandro.sartorio@gmail.com>
This commit is contained in:
wsf
2026-08-24 22:15:42 -03:00
parent 20adf4716f
commit 3712648cd3
3 changed files with 52 additions and 1 deletions
+47
View File
@@ -0,0 +1,47 @@
name: Publicar prototipo en GitHub Pages
on:
push:
branches: [main]
paths:
- "prototipo/**"
- "diagrams/svg/**"
- ".github/workflows/pages.yml"
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: pages
cancel-in-progress: true
jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Descargar repositorio
uses: actions/checkout@v7
- name: Preparar sitio
run: |
mkdir -p _site/diagrams/svg
cp -R prototipo/. _site/
cp diagrams/svg/*.svg _site/diagrams/svg/
- name: Configurar Pages
uses: actions/configure-pages@v6
- name: Empaquetar sitio
uses: actions/upload-pages-artifact@v5
with:
path: _site
- name: Publicar
id: deployment
uses: actions/deploy-pages@v5
+3
View File
@@ -12,6 +12,9 @@ trazabilidad entre:
No requiere instalación ni servidor. Abrir `index.html` en un navegador.
La versión publicada está disponible en:
<https://cursos-uai.github.io/sap_tfi_2026/>.
Para servirlo localmente (opcional):
```bash
+2 -1
View File
@@ -60,7 +60,8 @@ function renderScenario(key){
document.querySelector("#record-state").textContent=scenario.state;
document.querySelector("#primary-actions").innerHTML=scenario.actions.map(([label,kind,action])=>`<button class="${kind}" data-action="${action}">${label}</button>`).join("");
document.querySelector("#trace-grid").innerHTML=scenario.trace.map(row=>`<article class="trace-row"><div class="trace-cell boundary-cell"><span>Boundary</span><strong>${row[0]}</strong><p>Elemento que ve o utiliza el actor.</p></div><div class="trace-cell control-cell"><span>Control</span><strong>${row[1]}</strong><p>Comportamiento disparado.</p></div><div class="trace-cell entity-cell"><span>Entity</span><strong>${row[2]}</strong><p>Datos consultados o modificados.</p></div></article>`).join("");
document.querySelector("#diagram-link").href=`../diagrams/svg/${encodeURIComponent(scenario.diagram)}%20${encodeURIComponent("—")}%20${diagramFilename(key)}.svg`;
const diagramBase=location.pathname.includes("/prototipo/")?"../diagrams/svg/":"diagrams/svg/";
document.querySelector("#diagram-link").href=`${diagramBase}${encodeURIComponent(scenario.diagram)}%20${encodeURIComponent("—")}%20${diagramFilename(key)}.svg`;
log("Pantalla preparada",`Estás explorando ${scenario.diagram}. Usá los botones para simular el flujo.`);
}