From 064b5d5bb8685759bfffffcf6ab8b13069596516 Mon Sep 17 00:00:00 2001 From: Fernando Rivas Date: Thu, 27 Aug 2026 01:45:23 -0600 Subject: [PATCH] fix(ci): correr celdas ci-safe por nombre en vez de runme run --all MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit El log real del runner confirmó que el crash ("could not execute command: aborted") ocurre justo al entrar a la UI interactiva multi-tarea de "runme run --all" (mensajes "Initializing..."/"Parsing files..."), no en una celda en particular — --log/--log-file ni siquiera alcanzan a escribir nada. No se pudo reproducir en local pese a varios intentos (stdin/stdout no interactivos, CI=true, TERM=dumb). scripts/runme-ci.sh corre cada celda ci-safe por su nombre exacto, sin --all: --dry-run ya había confirmado que esa forma no dispara la UI multi-tarea. Makefile y RUNBOOK.md actualizados para reflejarlo. Probado localmente de extremo a extremo, las 4 celdas en verde. Co-Authored-By: Claude Sonnet 5 --- .gitea/workflows/ci.yml | 7 ------- Makefile | 2 +- RUNBOOK.md | 24 +++++++++++++++++------- scripts/runme-ci.sh | 30 ++++++++++++++++++++++++++++++ 4 files changed, 48 insertions(+), 15 deletions(-) create mode 100755 scripts/runme-ci.sh diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index eb73626..6ab821b 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -92,10 +92,3 @@ jobs: - name: Ejecutar celdas ci-safe de RUNBOOK.md run: make runme-ci - - - name: Diagnóstico de runme (sólo si falló el paso anterior) - if: failure() - run: | - echo "runme version: $(runme --version)" - echo "--- /tmp/runme-ci.log ---" - cat /tmp/runme-ci.log 2>&1 || echo "(sin log)" diff --git a/Makefile b/Makefile index 50241ea..8a8c523 100644 --- a/Makefile +++ b/Makefile @@ -56,4 +56,4 @@ runme-check: build ./scripts/runme-check.sh runme-ci: build - runme --log --log-file /tmp/runme-ci.log run --filename RUNBOOK.md --tag ci-safe --all --skip-prompts + ./scripts/runme-ci.sh diff --git a/RUNBOOK.md b/RUNBOOK.md index 61730b3..79479ef 100644 --- a/RUNBOOK.md +++ b/RUNBOOK.md @@ -59,14 +59,24 @@ ninguna llave privada real. ## Ejecutar +`make runme-ci` corre `scripts/runme-ci.sh`, que invoca cada celda `ci-safe` +por su nombre exacto, una por una, deteniéndose en el primer fallo: + ```text -runme run --filename RUNBOOK.md --tag ci-safe --all --skip-prompts +runme run --filename RUNBOOK.md --skip-prompts clusterlog-runme-preflight +runme run --filename RUNBOOK.md --skip-prompts clusterlog-sync-check +runme run --filename RUNBOOK.md --skip-prompts clusterlog-validate-local +runme run --filename RUNBOOK.md --skip-prompts clusterlog-verify-head ``` -es lo que corre `make runme-ci`: exactamente las celdas marcadas `ci-safe`, -en orden, deteniéndose en el primer fallo (verificado con Runme real; ver el -ADR-0004 del motor). Nunca ejecute `runme run --all --skip-prompts` **sin** -`--tag ci-safe` sobre este archivo ni sobre `runbooks/weekly-review.md`: sin -ese filtro, `--all` también incluiría celdas que mutan estado real de esta -instancia. Ésas deben correrse una por una, a mano, después de revisar sus +No usa `runme run --tag ci-safe --all`: esa forma sí funciona en una +terminal normal, pero en el runner real de esta instancia aborta al entrar a +su UI interactiva de progreso multi-tarea (no se pudo reproducir en local +para diagnosticarlo más a fondo — ver `scripts/runme-ci.sh`). Invocar cada +celda por nombre evita esa ruta de código. + +Nunca ejecute `runme run --all --skip-prompts` sobre este archivo ni sobre +`runbooks/weekly-review.md`: sin filtrar por nombre o etiqueta, `--all` +también incluiría celdas que mutan estado real de esta instancia. Ésas +deben correrse una por una, a mano, después de revisar sus prerrequisitos. diff --git a/scripts/runme-ci.sh b/scripts/runme-ci.sh new file mode 100755 index 0000000..bd3963b --- /dev/null +++ b/scripts/runme-ci.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +# Corre cada celda ci-safe de RUNBOOK.md por nombre exacto, una por una. +# +# No usa "runme run --tag ci-safe --all": esa forma sí funciona en una +# terminal normal (verificado), pero en el runner real de Gitea Actions +# de esta instancia aborta de inmediato ("could not execute command: +# aborted") apenas entra a su UI interactiva de progreso multi-tarea +# ("Initializing...'/"Parsing files..."), sin producir log útil pese a +# --log/--log-file. No se pudo reproducir el crash localmente para +# diagnosticarlo más a fondo. Invocar cada celda por nombre, sin --all, +# usa una ruta de código distinta (confirmado con --dry-run: no dispara +# esa UI) y evita el problema. +# +# La lista debe coincidir con las celdas "ci-safe" de RUNBOOK.md. +set -euo pipefail + +ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +cd "$ROOT" + +CI_SAFE_CELLS=( + clusterlog-runme-preflight + clusterlog-sync-check + clusterlog-validate-local + clusterlog-verify-head +) + +for cell in "${CI_SAFE_CELLS[@]}"; do + echo "== $cell ==" + runme run --filename RUNBOOK.md --skip-prompts "$cell" +done