Skip to content

ci: warn on release PRs when GHCR bundles are not public#12

Merged
phramz merged 2 commits into
mainfrom
ci/check-release-pr-package-visibility
Apr 17, 2026
Merged

ci: warn on release PRs when GHCR bundles are not public#12
phramz merged 2 commits into
mainfrom
ci/check-release-pr-package-visibility

Conversation

@phramz

@phramz phramz commented Apr 17, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Today, release-please opens a release PR; if the bundle packages on GHCR are still private, downstream consumers break the moment the new tag is published (see fix: move floating major tag from release-please workflow #10 for the trigger fix). There is no automated signal before merge.
  • New workflow check-release-pr.yml runs on PRs whose head branch starts with release-please--, derives the GHCR package names from bundles.lock (php-core, php-ext-<name>, php-tool-<name>), and anonymously checks each via the GHCR token endpoint.
  • Any package that is not publicly pullable causes the job to fail with an annotation and a job-summary list that deep-links to each package's visibility settings page, so the maintainer can flip them before merging.

Test plan

  • Open or update a release-please PR; confirm the package-visibility job runs and reports per-package status in the job summary.
  • Confirm the job is skipped on regular PRs (the if: startsWith(github.head_ref, 'release-please--') guard).
  • After flipping the 5 existing packages to Public, re-run the check and confirm it goes green.

phramz added 2 commits April 17, 2026 11:55
The standalone update-major-tag workflow does not fire when release-please
pushes the version tag, because workflows triggered by GITHUB_TOKEN do not
trigger downstream workflows. Move the tag in the same workflow that
created the release so the major tag stays in sync with each release.
Adds a check that runs only on release-please pull requests, derives the
list of GHCR packages from bundles.lock, and anonymously verifies each
manifest namespace is publicly pullable. Fails the check (with a job
summary listing each non-public package and a deep link to its visibility
settings page) so the maintainer can flip visibility before merging the
release PR.
@phramz
phramz merged commit a32de89 into main Apr 17, 2026
10 checks passed
@phramz
phramz deleted the ci/check-release-pr-package-visibility branch April 17, 2026 10:14
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