ci(release): publish gts-spec-tests image to ghcr.io on tags#72
Conversation
- Add release-tests-image workflow that publishes the e2e test runner to ghcr.io/globaltypesystem/gts-spec-tests on every vX.Y.Z tag. - Enforce that the tag's major.minor matches the spec version in README.md; release only from the canonical GlobalTypeSystem/gts-spec repo; build multi-arch (linux/amd64, linux/arm64); produce vX.Y.Z and vX.Y tags; create a GitHub Release with auto-generated notes. - Document the published image in tests/README.md (pull/run/pin) and the release process in CONTRIBUTING.md. - Align Dockerfile header comments with the published image name and point users at the GHCR image. Signed-off-by: Aviator 5 <ai.agent.tor@gmail.com>
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThis PR introduces a complete release and Docker publishing system for the GTS specification test suite. It adds a GitHub Actions workflow that automatically builds and publishes multi-arch Docker images to GHCR on semver tag pushes, with version validation against a README.md marker, along with supporting documentation for both maintainers and users. ChangesRelease workflow and Docker image publishing
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/release-tests-image.yml:
- Around line 21-22: Add a defense-in-depth change to the workflow's Checkout
step by setting persist-credentials to false on the actions/checkout@v4
invocation: update the Checkout step (uses: actions/checkout@v4) to include
persist-credentials: false so the GITHUB_TOKEN is not written into .git/config
and cannot be accidentally persisted or leaked if the workflow later caches or
uploads the .git directory.
- Line 22: The workflow currently pins actions by tag (e.g.,
actions/checkout@v4, docker/setup-qemu-action@v3, docker/setup-buildx-action@v3,
docker/login-action@v3, docker/metadata-action@v5, docker/build-push-action@v6,
softprops/action-gh-release@v2); replace those tag references with their
corresponding immutable commit SHAs (the reviewer provided verified SHAs) across
all occurrences (lines referenced: 22, 65, 68, 71, 79, 92, 102) so each uses:
entry is updated to uses: <owner>/<repo>@<commit-sha> to hard-pin the exact
commit for supply-chain security.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: f3c3610e-41ca-4f8f-b22a-f44570fc8e02
📒 Files selected for processing (5)
.github/workflows/release-tests-image.ymlCONTRIBUTING.mdREADME.mdtests/Dockerfiletests/README.md
- Pin all 7 actions in release-tests-image.yml to immutable commit SHAs with trailing version comments. Mitigates the tag-mutability supply-chain risk demonstrated by the tj-actions/changed-files compromise of March 2025 (CVE-2025-30066), where attackers retroactively moved version tags to a malicious commit affecting 23k+ repositories. - Add persist-credentials: false on actions/checkout. Currently low risk (workflow doesn't upload artifacts or cache .git), but prevents GITHUB_TOKEN from being persisted in .git/config if the workflow is later modified to do so. - Add .github/dependabot.yml with weekly grouped updates for the github-actions ecosystem. Dependabot natively understands SHA pins with trailing version comments and updates both the SHA and the comment together, preventing pins from going stale (the main failure mode of SHA pinning without automation). - Scope intentionally limited to release-tests-image.yml: validate-schemas has only contents:read permission and minimal attack surface, so the maintenance cost of SHA pinning there would outweigh the benefit. Signed-off-by: Aviator 5 <ai.agent.tor@gmail.com>
Summary by CodeRabbit
Documentation
Chores