diff --git a/.gitea/workflows/cd.yml b/.gitea/workflows/cd.yml index cd5aedf..5f78fdd 100644 --- a/.gitea/workflows/cd.yml +++ b/.gitea/workflows/cd.yml @@ -109,6 +109,13 @@ jobs: DEPLOY_KEY: ${{ secrets.INFRA_DEPLOY_KEY }} run: | set -euo pipefail + # infra#311: fail on an empty tag BEFORE patching anything. The + # grep verification further down CANNOT catch it -- with IMAGE_TAG + # empty its pattern matches the very corruption it exists to reject. + # The result is `image: :` in the manifest, which is invalid + # YAML, so Flux fails the ENTIRE apps Kustomization and every app + # stops reconciling, not just this one. That happened on 2026-08-25. + [ -n "${IMAGE_TAG:-}" ] || { echo "IMAGE_TAG is empty - refusing to patch"; exit 1; } mkdir -p ~/.ssh echo "$DEPLOY_KEY" > ~/.ssh/id_infra