fix(ci): build-gate skip-graceful si HARBOR_ROBOT_* ausente (GOLDEN-PATH-BUILD-DEPLOY-ORDER-RACE)
Sync desde coralware/IDP. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -19,9 +19,35 @@ on:
|
||||
workflow_dispatch: {}
|
||||
|
||||
jobs:
|
||||
# ── Gate de credenciales de build (GOLDEN-PATH-BUILD-DEPLOY-ORDER-RACE) ───
|
||||
# Los secrets HARBOR_ROBOT_USER/TOKEN los siembra tenant-manager en su fase 1
|
||||
# (build-ready). El commit de render dispara este workflow on:push en segundos;
|
||||
# si los secrets aún no están, el job build se SKIPEA (no falla, no rojo) y
|
||||
# tenant-manager dispara un run completo (workflow_dispatch) tras la fase 1+2.
|
||||
# Simétrico con cluster-gate del helm-deploy.
|
||||
build-gate:
|
||||
name: ¿Credenciales de build listas?
|
||||
runs-on: [self-hosted, buildkit]
|
||||
outputs:
|
||||
ready: ${{ steps.check.outputs.ready }}
|
||||
steps:
|
||||
- name: Verificar secrets Harbor sembrados
|
||||
id: check
|
||||
env:
|
||||
ROBOT_USER: ${{ secrets.HARBOR_ROBOT_USER }}
|
||||
run: |
|
||||
if [ -z "$ROBOT_USER" ]; then
|
||||
echo "::notice::Credenciales Harbor aún no sembradas (tenant-manager fase 1 build-ready). Este run se omite; el deploy completo se dispara automáticamente cuando estén listas (run #2)."
|
||||
echo "ready=false" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "ready=true" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
# ── Calidad + build + push de imagen a Harbor ────────────────────────────
|
||||
build:
|
||||
name: Calidad + build + push
|
||||
needs: build-gate
|
||||
if: needs.build-gate.outputs.ready == 'true'
|
||||
runs-on: [self-hosted, buildkit]
|
||||
outputs:
|
||||
image_tag: ${{ steps.meta.outputs.tag }}
|
||||
@@ -70,11 +96,8 @@ jobs:
|
||||
IMAGE: t-__TENANT_ID_SHORT__/__APP_NAME__
|
||||
TAG: ${{ steps.meta.outputs.tag }}
|
||||
run: |
|
||||
if [ -z "$ROBOT_USER" ] || [ -z "$ROBOT_TOKEN" ]; then
|
||||
echo "ERROR: secrets HARBOR_ROBOT_USER/HARBOR_ROBOT_TOKEN no configurados."
|
||||
echo "tenant-manager debe sembrarlos al crear el repo (paso 3 del reconcile)."
|
||||
exit 1
|
||||
fi
|
||||
# build-gate ya garantizó que HARBOR_ROBOT_USER está presente (si no,
|
||||
# este job se habría skipeado) — GOLDEN-PATH-BUILD-DEPLOY-ORDER-RACE.
|
||||
printf '%s' "$ROBOT_TOKEN" | docker login "$REGISTRY" -u "$ROBOT_USER" --password-stdin
|
||||
# Builder buildx remoto — apunta al buildkit daemon de ci-system
|
||||
# (el runner no tiene Docker daemon local).
|
||||
|
||||
Reference in New Issue
Block a user