Files
fernandoandClaude Sonnet 5 38c04ca62f
CI / validate-and-build (push) Successful in 7s
CI / runme (push) Successful in 9s
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>
2026-08-27 01:50:57 -06:00

4.3 KiB

RUNBOOK

Punto de entrada de la documentación ejecutable de esta instancia de clusterlog (MCPS). Cada celda envuelve un comando canónico existente (make, ./bin/clusterlog, un script en scripts/) — ninguna celda contiene lógica propia. El desarrollo del motor mismo (compilar, probar, bootstrap-instance) vive en fenandosr/clusterlog; ver runbooks/README.md para la convención completa de nombres y etiquetas.

Este archivo funciona igual con o sin Runme instalado: cada bloque es un comando de shell normal que también puede copiarse y ejecutarse a mano.

Runbooks disponibles

Comprobaciones rápidas

set -euo pipefail
test -f zola.toml && test -f .clusterlog-version || { echo "ejecute esto desde la raíz de la instancia" >&2; exit 1; }
echo "clusterlog-version: $(cat .clusterlog-version)"
if command -v zola >/dev/null 2>&1; then echo "zola:    $(zola --version)"; else echo "zola:    no instalado (validate --skip-zola sigue funcionando)"; fi
if command -v runme >/dev/null 2>&1; then echo "runme:   $(runme --version)"; else echo "runme:   no instalado (make runme-install)"; fi
make sync-check
make validate-local
make site

clusterlog-site-build no lleva ci-safe: descarga el tema y las plantillas del motor por red (make theme templates). La CI (.gitea/workflows/ci.yml) ya construye el sitio en su propio paso; repetirlo aquí sería una segunda copia de la misma lógica, no una celda adicional útil.

: "${CLUSTERLOG_SSH_KEY:?defina CLUSTERLOG_SSH_KEY con la ruta a su llave pública}"
./bin/clusterlog --root . --json --ssh-key "$CLUSTERLOG_SSH_KEY" review list --mine

clusterlog-review-mine tampoco lleva ci-safe: --mine resuelve identidad a partir de una llave SSH personal, y CI no tiene ni debe tener acceso a ninguna llave privada real.

./bin/clusterlog --root . --json verify commit HEAD

Ejecutar

Localmente, fuera de este runner, runme run --filename RUNBOOK.md --tag 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:

runme run --filename RUNBOOK.md --dry-run clusterlog-runme-preflight | bash
runme run --filename RUNBOOK.md --dry-run clusterlog-sync-check | bash
runme run --filename RUNBOOK.md --dry-run clusterlog-validate-local | bash
runme run --filename RUNBOOK.md --dry-run clusterlog-verify-head | bash

Tanto runme run --all como invocar cada celda por nombre (sin --all) abortan de inmediato en el runner real de esta instancia ("could not execute command: aborted", justo al entrar a "Parsing files..."), algo que no se pudo reproducir en ninguna terminal local. Sólo --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 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.