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: