Publish prebuilt Apptainer SIFs to GHCR via ORAS#390
Conversation
Reuse the SIF that test-apptainer already builds and validates: upload it as a workflow artifact when validation passes, then push it to ghcr.io/<owner>/<repo>/sif:<tag> from a new publish-apptainer job. Tag scheme mirrors the docker image (branch/sha/version-<variant> plus bare `latest` for full+main). Sibling /sif package keeps tag lists clean and cleanup policies independent. README now points HPC users at the prebuilt ORAS path instead of the slow on-the-fly OCI->SIF conversion. https://claude.ai/code/session_01NumLyfkQ3w3JF3TU8jM1iX
|
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: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
✨ 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 |
Summary
Add CI/CD pipeline to publish prebuilt Apptainer SIF (Singularity Image Format) containers to GHCR via ORAS, eliminating the need for HPC users to perform on-the-fly OCI→SIF conversion. This significantly improves startup time and user experience for HPC deployments.
Key Changes
build-and-test.yml:
publish-apptainerjob that downloads validated SIFs and pushes them to GHCR as OCI artifacts via ORASlatest,main-{full,simple},v*-{full,simple}, and per-commit SHAsghcr-cleanup.yml:
cleanup-sif-imagesjob to manage SIF artifact retentionREADME.md:
Implementation Details
ghcr.io/<owner>/<repo>/sif) to keep tag lists clean and distinct from Docker images~/.apptainer/remote.yamlrather than Docker configdocker/metadata-actionfor consistency with existing Docker image tagginghttps://claude.ai/code/session_01NumLyfkQ3w3JF3TU8jM1iX