fix(ci): correr celdas ci-safe por nombre en vez de runme run --all
CI / validate-and-build (push) Successful in 7s
CI / runme (push) Failing after 7s

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 <noreply@anthropic.com>
This commit is contained in:
2026-08-27 01:45:23 -06:00
co-authored by Claude Sonnet 5
parent f178ecdcc7
commit 064b5d5bb8
4 changed files with 48 additions and 15 deletions
-7
View File
@@ -92,10 +92,3 @@ jobs:
- name: Ejecutar celdas ci-safe de RUNBOOK.md - name: Ejecutar celdas ci-safe de RUNBOOK.md
run: make runme-ci 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)"
+1 -1
View File
@@ -56,4 +56,4 @@ runme-check: build
./scripts/runme-check.sh ./scripts/runme-check.sh
runme-ci: build 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
+17 -7
View File
@@ -59,14 +59,24 @@ ninguna llave privada real.
## Ejecutar ## 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 ```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`, No usa `runme run --tag ci-safe --all`: esa forma sí funciona en una
en orden, deteniéndose en el primer fallo (verificado con Runme real; ver el terminal normal, pero en el runner real de esta instancia aborta al entrar a
ADR-0004 del motor). Nunca ejecute `runme run --all --skip-prompts` **sin** su UI interactiva de progreso multi-tarea (no se pudo reproducir en local
`--tag ci-safe` sobre este archivo ni sobre `runbooks/weekly-review.md`: sin para diagnosticarlo más a fondo — ver `scripts/runme-ci.sh`). Invocar cada
ese filtro, `--all` también incluiría celdas que mutan estado real de esta celda por nombre evita esa ruta de código.
instancia. Ésas deben correrse una por una, a mano, después de revisar sus
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. prerrequisitos.
+30
View File
@@ -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