Skip to content

ci: handle brand-new images and workflow_dispatch in release_check#446

Merged
sanketsudake merged 1 commit into
masterfrom
fix-release-check-new-images
Jun 6, 2026
Merged

ci: handle brand-new images and workflow_dispatch in release_check#446
sanketsudake merged 1 commit into
masterfrom
fix-release-check-new-images

Conversation

@sanketsudake
Copy link
Copy Markdown
Member

What

Follow-up fix to the #436 release-gate repair, surfaced by the first real release runs after #437/#438 merged:

  1. New-image case: GHCR's token endpoint returns 403 for packages that don't exist yet, so the fail-closed gate crashed on the first-ever release of jvm-jersey-env-25 (failed run). Token 401/403/404 now maps to "package missing → release needed"; 5xx/network errors still fail closed.
  2. workflow_dispatch reconcile mode: on manual dispatch the paths filter has no diff, so the gate previously did nothing. With an empty package list it now scans every */envconfig.json and releases anything whose version isn't on GHCR — making dispatch a "reconcile all" button.

Verified live against GHCR

Reconcile mode correctly flags the current unpublished backlog — jvm-jersey-env-25:1.32.0 (the failed run above), python-env:1.34.3 (pre-existing backlog from the broken gate), php-env:1.31.2, legacy dotnet-env/dotnet20-env 1.31.1 — and skips everything already published.

After merge

Run gh workflow run release.yaml once to backfill the missed releases (heads-up: the legacy dotnet 1.1/2.0 matrix legs may fail to build — they're EOL images on the deprecated microsoft/dotnet base and were left untouched in this series; fail-fast: false keeps the other legs going).

🤖 Generated with Claude Code

- GHCR refuses to issue an anonymous pull token (403) for packages
  that do not exist yet, which made the release gate crash on the
  first release of a new image name (seen with jvm-jersey-env-25).
  Treat token 401/403/404 as "package missing -> release needed".
- When invoked with no package list (workflow_dispatch, where the
  paths filter has no diff), reconcile every environment so any
  envconfig version that never got published is picked up.

Verified live against GHCR: the reconcile run correctly flags the
unpublished backlog (jvm-jersey-env-25 1.32.0, python-env 1.34.3,
php-env 1.31.2, legacy dotnet 1.31.1) and skips everything already
published.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@sanketsudake sanketsudake merged commit e6b71b4 into master Jun 6, 2026
15 checks passed
@sanketsudake sanketsudake deleted the fix-release-check-new-images branch June 6, 2026 16:10
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