From 6aa057f739c2771aa2d3c3365dfdd077df26ecba Mon Sep 17 00:00:00 2001 From: vjrj Date: Tue, 28 Jul 2026 13:50:23 +0200 Subject: [PATCH] staging: la web se descarga del registry, no se compila en groucho Cloudflare ya no esta delante de git.comunes.org, asi que el registry de Forgejo acepta la capa de 508 MB del bundle (comprobado: subida completa desde groucho, la imagen esta en comunes/-/packages/container/tcef-web con los tags meteor3 y a24c7a567c20). - compose: `build:` -> `image: git.comunes.org/comunes/tcef-web:${TCEF_WEB_TAG:-meteor3}`. groucho pasa de 30 min de `meteor build` (que lo dejaron sin ssh) a un pull de segundos. - workflow: se activa el disparo por push, y se anade una comprobacion de secretos como primer paso. Sin ella, faltar REGISTRY_TOKEN se descubria a los ~30 min, al intentar el push; ahora falla en 2 segundos diciendo exactamente que crear y donde. --- .forgejo/workflows/build-image.yml | 28 ++++++++++++++++++++-------- docker-compose.staging.yml | 10 ++++++---- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/.forgejo/workflows/build-image.yml b/.forgejo/workflows/build-image.yml index ffdc59b..eff2b28 100644 --- a/.forgejo/workflows/build-image.yml +++ b/.forgejo/workflows/build-image.yml @@ -18,16 +18,11 @@ name: build-image -# De momento SOLO manual. El disparo por push está comentado a propósito: hasta que -# `git.comunes.org` salga de detrás de Cloudflare (capa de 508 MB contra un tope de 100 MB, -# ver plan-modernizacion/fase-9-ci-imagenes.md) y existan los secretos REGISTRY_*, cada push -# lanzaría un `meteor build` de ~30 min en aaron para morir al subir. Descomentar cuando -# la primera pasada manual esté verde. on: + push: + branches: [meteor3-wip, tcef-master] + paths-ignore: ['**.md'] workflow_dispatch: - # push: - # branches: [meteor3-wip, tcef-master] - # paths-ignore: ['**.md'] jobs: build: @@ -41,6 +36,23 @@ jobs: env: IMAGE: git.comunes.org/comunes/tcef-web steps: + # Primero de todo: sin credenciales el build tarda ~30 min en llegar al push para + # morir ahí. Mejor fallar en 2 segundos y decir exactamente qué falta. + - name: Comprobar secretos + shell: sh + env: + REGISTRY_USER: ${{ secrets.REGISTRY_USER }} + REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }} + run: | + export PATH=/busybox:/kaniko:$PATH + if [ -z "$REGISTRY_USER" ] || [ -z "$REGISTRY_TOKEN" ]; then + echo "Faltan los secretos REGISTRY_USER / REGISTRY_TOKEN." + echo "Crealos en Settings -> Actions -> Secrets de este repositorio." + echo "REGISTRY_TOKEN: token de git.comunes.org con scope write:package" + echo "(Settings -> Applications -> Generate New Token). No reutilices uno con scope 'all'." + exit 1 + fi + # Checkout a mano contra el Forgejo interno, igual que el CI de fires_flutter: # la imagen de kaniko no tiene Node, así que las actions basadas en JS no valen. - name: Checkout diff --git a/docker-compose.staging.yml b/docker-compose.staging.yml index 99faf17..cd1248a 100644 --- a/docker-compose.staging.yml +++ b/docker-compose.staging.yml @@ -58,10 +58,12 @@ services: logging: *default-logging web: - build: - context: . - dockerfile: Dockerfile - image: tcef-web:meteor3 + # La imagen se construye en el CI (runner de aaron) y se publica en el registry de + # Forgejo; aquí solo se descarga. groucho NO compila: un `meteor build` lo dejó sin ssh + # (5,9 GB compartidos con Mongo 7 + el resto del stack). Ver + # plan-modernizacion/fase-9-ci-imagenes.md y .forgejo/workflows/build-image.yml. + # Para fijar una versión concreta: TCEF_WEB_TAG= docker compose up -d web + image: git.comunes.org/comunes/tcef-web:${TCEF_WEB_TAG:-meteor3} container_name: tcef-staging-web depends_on: mongo-init: