First pass at adding apptainer image building - #21
Conversation
|
This is nice and small BUT now the problem is that if the singularity image fails to build, it takes out the docker build as well. I want to make this more modular so I am going to rework it. |
…d (default is only 1 hour)
|
The biggest change this PR makes (other than adding sif building) is: Pixi with the workspace as |
There was a problem hiding this comment.
This is pretty common for a lot of people, I wonder if it might be worth publishing a composite action in the future. Might make this process easier for others to maintain. No need to add this here, just food for thought.
There was a problem hiding this comment.
The reusable piece is probably "take an OCI image, convert it to SIF, and publish it to an OCI registry," while leaving repo-specific tagging/promotion policy outside the action.
And I agree we can do this in a follow up PR/after we need it again.
ethanholz
left a comment
There was a problem hiding this comment.
This looks great just a few questions around choices but otherwise, everything looks good!
| shell: bash | ||
|
|
||
| # ── SIF promotion ────────────────────────────────────────────── | ||
| - name: Set up ORAS |
There was a problem hiding this comment.
Why use ORAS specifically? More of a curiosity than a need to change anything.
There was a problem hiding this comment.
I'll have to double check, I think I had to use it when I set this up for openfe and docker:// didn't accept sif images but oras:// did.
There was a problem hiding this comment.
docker:// is for normal OCI container images. Apptainer can pull one and convert it into a SIF, which is what we do during the build. A SIF itself is stored in the registry as an OCI artifact, and Apptainer uses oras:// for pushing and pulling those.
For the promotion step, ORAS also lets us add the latest and dated tags directly to the existing artifact rather than pulling and republishing the SIF.
This is consistent with Apptainer docs
Uh oh!
There was an error while loading. Please reload this page.