fix(ci): que el verde de «Services build (GHCR)» signifique que algo se construyó - #680
Merged
Merged
Conversation
Ayer di por bueno que `skipped` pasara. El razonamiento era que un skip significa que fallo una suite previa, y esa ya lleva su propio check en rojo. La premisa era cierta y la conclusion era falsa: ese rojo no bloquea. `docker-services` depende de siete jobs de test, y dos de ellos --- `test-sdk-client` y `test-infra-providers` --- no son contextos requeridos ni en main ni en develop. Asi que un Dockerfile roto llegando junto a un solo flake en cualquiera de esas dos suites saltaba el build, reportaba este check en VERDE sin haber construido nada, y dejaba los ocho contextos requeridos satisfechos. Es exactamente el fallo que el job existe para impedir, ahora con chapa de check requerido. Un check requerido tiene que afirmar que el build CORRIO, no solo que no fallo. Dos rojos en vez de uno no es duplicar el reporte: es este check negandose a responder por algo que nunca vio. Segundo arreglo, del mismo cambio de ayer: `cache-to` escribia en cada PR. Tres imagenes en mode=max son cerca de un giga por run, y la cache de Actions es un unico pozo de 10 GB que ya guarda ~1.7 GB de los que dependen los tests. Cada PR escribiendo su copia habria desalojado por LRU las caches de npm, y eso se habria visto como las suites de test volviendose lentas sin motivo. Ahora todos leen y solo publican los refs que publican. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: aarroyo <beyondnet.peru@gmail.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
📊 Bilingual Coverage ImpactPR Changes
Repository Coverage
✅ Good: All EN changes have ES counterparts. Generated by GitHub Actions |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Antes de marcar
Services build (GHCR)como check requerido, audité el cambio de #679 con cuatro lentes independientes y un pase de refutación. Encontró un agujero real, y era mío.El defecto
Escribí que el gate tratara
skippedcomo paso, razonando que un skip significa que falló una suite previa y que esa ya lleva su propio check en rojo.La premisa era cierta. La conclusión era falsa: ese rojo no bloquea.
docker-servicesdepende de siete jobs de test. Dos de ellos —test-sdk-clientytest-infra-providers— no son contextos requeridos ni enmainni endevelop. La cadena completa:Es el fallo que el job existe para impedir, ahora con chapa de check requerido. Y
mainno tienerequired_pull_request_reviews, así que esos ocho contextos son la puerta entera: no hay revisor obligatorio que note el rojo no bloqueante.El arreglo
Solo
successpasa. Cualquier otra cosa —skipped,cancelled,failure— sale en rojo con un mensaje que dice por qué. Un check requerido tiene que afirmar que el build corrió, no solo que no falló. Dos rojos en vez de uno no es duplicar el reporte: es este check negándose a responder por algo que nunca vio.Segundo arreglo, del mismo cambio
cache-toescribía en cada PR. Tres imágenes enmode=maxson ~1 GB por run, y la cache de Actions es un único pozo de 10 GB que ya guarda ~1.7 GB de los que dependen los tests. Cada PR escribiendo su copia habría desalojado por LRU las caches de npm — y eso no se habría visto como un problema de cache, sino como las suites de test volviéndose lentas sin motivo. Ahora todos leen; solo escriben los refs que publican.Lo que la auditoría confirmó que sí está bien
env.PUBLISHresuelve correctamente ensteps[*].ify ensteps[*].with— probado en vivo en ci(imágenes): el build de imagen pasa a ser un check del PR #679:Login to GHCRsalióskippedy la acción recibiópush: false.pull_request, tampoco desde un fork.main(el aislamiento de caches de GHA lo impide).Services build (GHCR), sin prefijo de workflow ni sufijo de matrix.Doce hallazgos más fueron refutados en el pase adversarial y no están aquí.
Queda dicho, no hecho
docker/build-push-action@v5ysetup-buildx-action@v3apuntan al runtime Node 20, en migración forzada por GitHub. Rompería en rojo, no en silencio.🤖 Generated with Claude Code