Skip to content

promoción a main: el build de imagen es ahora un check del PR, y su verde significa algo - #681

Merged
beyondnetPeru merged 5 commits into
mainfrom
develop
Sep 1, 2026
Merged

promoción a main: el build de imagen es ahora un check del PR, y su verde significa algo#681
beyondnetPeru merged 5 commits into
mainfrom
develop

Conversation

@beyondnetPeru

Copy link
Copy Markdown
Contributor

Promoción de #679 + #680.

Qué llega a main

El build de las tres imágenes de servicio pasa a correr en cada PR. Estaba gateado a main y tags, así que la pregunta «¿esto todavía construye?» se hacía después de todas las puertas que podrían haber parado el cambio. Un Dockerfile roto de agent-runtime cruzó los PR #669, #670 y #673 con 46, 78 y 47 checks en verde, y lo encontró un humano leyendo el registry.

El push sigue gateado a main y tags: publicación sin cambio.

Las tres ramas del matrix se colapsan en un contexto estable, Services build (GHCR), que es lo que la protección de rama puede exigir — los contextos de matrix arrastran sus parámetros y cambian cuando cambia una ruta.

El gate solo pasa en success

La primera versión dejaba pasar skipped. La premisa —«un skip significa que falló una suite previa, y esa ya lleva su rojo»— era cierta; la conclusión era falsa: ese rojo no bloquea. test-sdk-client y test-infra-providers no son contextos requeridos, así que un Dockerfile roto más un flake en cualquiera de las dos habría dado verde sin construir nada. Corregido en #680.

Lo probado en vivo, no argumentado

Evidencia
env.PUBLISH en if: de step Login to GHCRskipped en el run del PR
env.PUBLISH en with: la acción recibió push: false
cache-to condicional docker buildx build salió con --cache-from y sin --cache-to
nombre del contexto Services build (GHCR), verbatim, sin prefijo ni sufijo

Lo que este PR sí prueba y no probaba ninguno de los dos anteriores

En un pull_request, github.ref es refs/pull/N/merge, así que PUBLISH es false y la ruta de publicación nunca se ejercita. Al mergear esto a main, PUBLISH pasa a true por primera vez. Verifico contra GHCR —digest y fecha de las tres imágenes— en vez de contra el color del check.

Después del merge

Marcar Services build (GHCR) como contexto requerido en main y en develop. Las dos protecciones son idénticas hoy; dejarlas divergir es cómo se termina saltando el check.

🤖 Generated with Claude Code

beyondnetPeru and others added 5 commits September 1, 2026 10:48
chore(release): realign develop with main after the #673 and #677 promotions

Zero file changes; both commits are the merge nodes GitHub created on main. Two
rather than one because #674 was closed instead of merged — its red image-build
check was true about a main that genuinely could not build.
…es promociones despues

El job que construye las tres imagenes de servicio estaba gateado a
`main` y a tags. Eso ponia la pregunta "esto todavia construye?" despues
de todas las puertas que podrian haberla parado: un Dockerfile roto de
agent-runtime cruzo los PR #669, #670 y #673 con 46, 78 y 47 checks en
verde cada uno, y lo encontro un humano leyendo el registry.

El build pasa a correr en cada PR; el push sigue gateado a main y tags,
que es exactamente la conducta de publicacion que el job ya tenia. En un
pull request `github.ref` es refs/pull/N/merge, asi que no se hace login
contra GHCR ni sale nada hacia el registry: el PR demuestra que la
imagen compila, y nada mas.

Un matrix reporta un check por rama y cada contexto arrastra sus
parametros --- "(core-api, ., ./src/apps/core-api/Dockerfile)" ---, que
cambian cuando cambia una ruta. Por eso las tres se colapsan en un job
sin matrix, `Services build (GHCR)`, con nombre estable: ese es el
contexto que la proteccion de rama puede exigir. Trata `skipped` como
paso porque significa que fallo una suite previa, y esa ya tiene su
propio check en rojo; duplicarlo solo aniade ruido.

Con el build ahora en la ruta caliente de cada PR, se aniade cache de
GitHub Actions con scope por servicio, para que las tres ramas no se
desalojen entre si.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: aarroyo <beyondnet.peru@gmail.com>
ci(imágenes): el build de imagen pasa a ser un check del PR
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>
fix(ci): que el verde de «Services build (GHCR)» signifique que algo se construyó
@beyondnetPeru
beyondnetPeru requested a review from a team as a code owner September 1, 2026 16:23
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown

📊 Bilingual Coverage Impact

PR Changes

  • Paired EN/ES files modified: 1
  • New EN files needing ES translation: 0

Repository Coverage

Metric Value
Total EN files 527
Total ES files 497
Paired files 0
Coverage 0%

Good: All EN changes have ES counterparts.


Generated by GitHub Actions

@beyondnetPeru
beyondnetPeru merged commit b84523b into main Sep 1, 2026
58 checks passed
beyondnetPeru added a commit that referenced this pull request Sep 2, 2026
chore(release): realinear develop con main tras la promoción #681
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant