You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ci(linux): endurecer verify.sh — fallar si falta cualquiera de los dos bundles, no solo si falta todo #175
El bug corregido en d7a0f8c (gate de bundles que se saltaba por el glob en minúscula quorb_* vs Quorb_*) demostró que un skip silencioso en la verificación convierte un gate vacío en verde. El fix actual endurece el caso total: verify.sh falla con exit 1 solo si no hay ningún bundle en /artifacts.
Pero el caso parcial sigue abierto: si llega solo el .deb y falta el .AppImage (o al revés), verify-deb.sh/verify-appimage.sh imprimen «AVISO: no hay ningún …» y hacen exit 0, y el orquestador declara ✔ Build-verify OK: los bundles presentes… — un verde a medias que nadie mira.
Propuesta
verify-deb.sh y verify-appimage.sh fallan (exit 1) cuando su bundle esperado no está, en vez de avisar y salir 0.
O, como mínimo, verify.sh comprueba la presencia de ambos tipos y falla si falta cualquiera, dejando el aviso como salida de diagnóstico y no como resultado.
El mensaje final debe distinguir «los dos bundles validados» de «solo se validó uno».
Criterios de aceptación
Un run de linux-ci.yml con with_bundle=bundle donde falte un solo bundle (simulado) termina en rojo, no en verde con AVISO.
Con ambos bundles presentes, el gate sigue en verde y el mensaje declara que se validaron los dos.
Sin bundles, se mantiene el exit 1 actual.
Referencias
Fix original: d7a0f8c (fix(ci): verify Linux bundles case-insensitively and fail on empty artifacts)
linux-ci.yml (también en main) ya tenía su propio guard en staging ([ -n "$(ls "$BUNDLE_DIR"/*.deb …)" ] || exit 1, igual para .AppImage): la ruta de CI nunca dio verde a medias — el gap real eran los scripts invocados directamente.
Contra los criterios de aceptación
AC
Estado
Falta un solo bundle (simulado) → rojo
Cumplido — nuevo test scripts/verify-linux-bundles.test.mjs (3b20966) ejercita los scripts contra ARTIFACTS_DIR temporal: falta .deb → exit 1; falta .AppImage → exit 1; solo llega .AppImage → gate entero rojo
Ambos presentes → verde, mensaje declara los dos
Cumplido — mensaje ✔ Build-verify OK: .deb y .AppImage arrancados en Ubuntu 22.04 limpia. + run fork 39800266204
Sin bundles → exit 1
Cumplido — verificado por el mismo test (set vacío) y por el guard de staging
Para ejecutar los scripts fuera del contenedor, aceptan ARTIFACTS_DIR (default /artifacts, comportamiento del contenedor inalterado).
Con el merge de #176 esta issue queda cerrada; el test la mantiene cerrada (regresión → npm test rojo).
verify-deb.sh y verify-appimage.sh fallan con exit 1 si falta su propio bundle (ya no exit 0 con aviso).
verify.sh declara ✔ Build-verify OK: .deb y .AppImage arrancados en Ubuntu 22.04 limpia solo cuando ambos se validaron.
El contrato queda protegido contra regresión por scripts/verify-linux-bundles.test.mjs (4 casos: falta .deb, falta .AppImage, set vacío, solo .AppImage → todos exit 1), verificado en checkout limpio y en CI upstream (Windows/Linux/macOS en verde).
Activity
sosan commentedon Oct 23, 2026
Caso ya cubierto en el PR #176 — se cerró con evidencia y ahora con test de regresión.
Estado real
La premisa (script con
exit 0+ «AVISO») describía el estado anterior al endurecimiento:2f33507(en la rama de test(linux): verificación W3 en Linux real — fixtures de sesión, smoke de Secret Service y gate de bundles (#106) #176) hizo queverify-deb.shyverify-appimage.shfallen conexit 1si falta su propio tipo; el orquestador solo declara OK cuando hay.deby.AppImage.linux-ci.yml(también enmain) ya tenía su propio guard en staging ([ -n "$(ls "$BUNDLE_DIR"/*.deb …)" ] || exit 1, igual para.AppImage): la ruta de CI nunca dio verde a medias — el gap real eran los scripts invocados directamente.Contra los criterios de aceptación
scripts/verify-linux-bundles.test.mjs(3b20966) ejercita los scripts contraARTIFACTS_DIRtemporal: falta.deb→exit 1; falta.AppImage→exit 1; solo llega.AppImage→ gate entero rojo✔ Build-verify OK: .deb y .AppImage arrancados en Ubuntu 22.04 limpia.+ run fork39800266204exit 1Para ejecutar los scripts fuera del contenedor, aceptan
ARTIFACTS_DIR(default/artifacts, comportamiento del contenedor inalterado).Con el merge de #176 esta issue queda cerrada; el test la mantiene cerrada (regresión →
npm testrojo).egdev6 commentedon Oct 23, 2026
Resuelta por PR #176 (squash
31facfcenmain).verify-deb.shyverify-appimage.shfallan conexit 1si falta su propio bundle (ya noexit 0con aviso).verify.shdeclara✔ Build-verify OK: .deb y .AppImage arrancados en Ubuntu 22.04 limpiasolo cuando ambos se validaron.scripts/verify-linux-bundles.test.mjs(4 casos: falta.deb, falta.AppImage, set vacío, solo.AppImage→ todosexit 1), verificado en checkout limpio y en CI upstream (Windows/Linux/macOS en verde).