fix(ci): runme-ci.sh vuelve a fallar con nombres exactos; usar --dry-run
El intento anterior (correr cada celda por nombre, sin --all) también
aborta en el runner real ("Parsing files..." → "could not execute
command: aborted") — el problema no era --all. --dry-run sí funciona en
ese runner (nunca ejecuta nada él mismo), pero escribe el script
resuelto a stderr, no a stdout: el primer intento de "| bash" no
ejecutaba nada porque el pipe sólo captura stdout, y lo que se veía en
pantalla era stderr yendo directo a la terminal. Corregido con "2>&1
>/dev/null | bash". Probado localmente de extremo a extremo: las 4
celdas ejecutan de verdad (incluye verify-head devolviendo valid:true
real, no sólo el texto del comando).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+16
-11
@@ -59,21 +59,26 @@ ninguna llave privada real.
|
|||||||
|
|
||||||
## Ejecutar
|
## Ejecutar
|
||||||
|
|
||||||
`make runme-ci` corre `scripts/runme-ci.sh`, que invoca cada celda `ci-safe`
|
Localmente, fuera de este runner, `runme run --filename RUNBOOK.md --tag
|
||||||
por su nombre exacto, una por una, deteniéndose en el primer fallo:
|
ci-safe --all --skip-prompts` funciona normalmente. En este repositorio,
|
||||||
|
`make runme-ci` en cambio corre `scripts/runme-ci.sh`, que para cada celda
|
||||||
|
`ci-safe` extrae su script con `runme run --dry-run <celda>` (nunca ejecuta
|
||||||
|
nada por sí solo) y lo corre con `bash`, deteniéndose en el primer fallo:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
runme run --filename RUNBOOK.md --skip-prompts clusterlog-runme-preflight
|
runme run --filename RUNBOOK.md --dry-run clusterlog-runme-preflight | bash
|
||||||
runme run --filename RUNBOOK.md --skip-prompts clusterlog-sync-check
|
runme run --filename RUNBOOK.md --dry-run clusterlog-sync-check | bash
|
||||||
runme run --filename RUNBOOK.md --skip-prompts clusterlog-validate-local
|
runme run --filename RUNBOOK.md --dry-run clusterlog-validate-local | bash
|
||||||
runme run --filename RUNBOOK.md --skip-prompts clusterlog-verify-head
|
runme run --filename RUNBOOK.md --dry-run clusterlog-verify-head | bash
|
||||||
```
|
```
|
||||||
|
|
||||||
No usa `runme run --tag ci-safe --all`: esa forma sí funciona en una
|
Tanto `runme run --all` como invocar cada celda por nombre (sin `--all`)
|
||||||
terminal normal, pero en el runner real de esta instancia aborta al entrar a
|
abortan de inmediato en el runner real de esta instancia
|
||||||
su UI interactiva de progreso multi-tarea (no se pudo reproducir en local
|
("could not execute command: aborted", justo al entrar a "Parsing
|
||||||
para diagnosticarlo más a fondo — ver `scripts/runme-ci.sh`). Invocar cada
|
files..."), algo que no se pudo reproducir en ninguna terminal local. Sólo
|
||||||
celda por nombre evita esa ruta de código.
|
`--dry-run` evita esa ruta de código en ambos lados — ver `scripts/runme-ci.sh`
|
||||||
|
para el detalle completo, incluida la comprobación real
|
||||||
|
(`clusterlog-verify-head` corriendo y devolviendo `valid: true` de verdad).
|
||||||
|
|
||||||
Nunca ejecute `runme run --all --skip-prompts` sobre este archivo ni sobre
|
Nunca ejecute `runme run --all --skip-prompts` sobre este archivo ni sobre
|
||||||
`runbooks/weekly-review.md`: sin filtrar por nombre o etiqueta, `--all`
|
`runbooks/weekly-review.md`: sin filtrar por nombre o etiqueta, `--all`
|
||||||
|
|||||||
+18
-11
@@ -1,15 +1,21 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Corre cada celda ci-safe de RUNBOOK.md por nombre exacto, una por una.
|
# Corre cada celda ci-safe de RUNBOOK.md, una por una, extrayendo su script
|
||||||
|
# real con "runme run --dry-run <celda>" y ejecutándolo con bash — sin usar
|
||||||
|
# el motor de ejecución de Runme.
|
||||||
#
|
#
|
||||||
# No usa "runme run --tag ci-safe --all": esa forma sí funciona en una
|
# Se intentó "runme run --tag ci-safe --all --skip-prompts" y también
|
||||||
# terminal normal (verificado), pero en el runner real de Gitea Actions
|
# invocar cada celda por nombre sin --all: ambas formas abortan de
|
||||||
# de esta instancia aborta de inmediato ("could not execute command:
|
# inmediato en el runner real de esta instancia ("could not execute
|
||||||
# aborted") apenas entra a su UI interactiva de progreso multi-tarea
|
# command: aborted", justo al entrar a "Parsing files..."), algo que no se
|
||||||
# ("Initializing...'/"Parsing files..."), sin producir log útil pese a
|
# pudo reproducir en ninguna terminal local (interactiva, con stdin/stdout
|
||||||
# --log/--log-file. No se pudo reproducir el crash localmente para
|
# redirigidos, con CI=true/TERM=dumb). "--dry-run" sí funciona en ambos
|
||||||
# diagnosticarlo más a fondo. Invocar cada celda por nombre, sin --all,
|
# lados: no dispara esa ruta de código porque nunca ejecuta nada él mismo,
|
||||||
# usa una ruta de código distinta (confirmado con --dry-run: no dispara
|
# sólo imprime el script resuelto de la celda.
|
||||||
# esa UI) y evita el problema.
|
#
|
||||||
|
# Esto sacrifica que sea Runme quien de verdad ejecute el comando en CI,
|
||||||
|
# pero preserva lo esencial: el Markdown con atributos de celda sigue
|
||||||
|
# siendo la única fuente de verdad de qué corre, y localmente (fuera de
|
||||||
|
# este runner) "runme run <celda>" sigue funcionando de forma normal.
|
||||||
#
|
#
|
||||||
# La lista debe coincidir con las celdas "ci-safe" de RUNBOOK.md.
|
# La lista debe coincidir con las celdas "ci-safe" de RUNBOOK.md.
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
@@ -26,5 +32,6 @@ CI_SAFE_CELLS=(
|
|||||||
|
|
||||||
for cell in "${CI_SAFE_CELLS[@]}"; do
|
for cell in "${CI_SAFE_CELLS[@]}"; do
|
||||||
echo "== $cell =="
|
echo "== $cell =="
|
||||||
runme run --filename RUNBOOK.md --skip-prompts "$cell"
|
# --dry-run escribe el script resuelto a stderr, no a stdout.
|
||||||
|
runme run --filename RUNBOOK.md --dry-run "$cell" 2>&1 >/dev/null | bash
|
||||||
done
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user