From 3712648cd34368ba23f4fff415122d8fecc0471c Mon Sep 17 00:00:00 2001 From: wsf Date: Mon, 24 Aug 2026 22:15:42 -0300 Subject: [PATCH] ci(pages): publicar prototipo educativo Co-authored-by: wsf Signed-off-by: wsf --- .github/workflows/pages.yml | 47 +++++++++++++++++++++++++++++++++++++ prototipo/README.md | 3 +++ prototipo/app.js | 3 ++- 3 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/pages.yml diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..8579ee7 --- /dev/null +++ b/.github/workflows/pages.yml @@ -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 diff --git a/prototipo/README.md b/prototipo/README.md index b3f0a5e..edf2ba7 100644 --- a/prototipo/README.md +++ b/prototipo/README.md @@ -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: +. + Para servirlo localmente (opcional): ```bash diff --git a/prototipo/app.js b/prototipo/app.js index 0cb7711..8acb4eb 100644 --- a/prototipo/app.js +++ b/prototipo/app.js @@ -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])=>``).join(""); document.querySelector("#trace-grid").innerHTML=scenario.trace.map(row=>`
Boundary${row[0]}

Elemento que ve o utiliza el actor.

Control${row[1]}

Comportamiento disparado.

Entity${row[2]}

Datos consultados o modificados.

`).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.`); }