-
Notifications
You must be signed in to change notification settings - Fork 134
feat: simplify unify containers #959
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
rather than bioconda package, which is not yet built for arm
so that versioneer can correctly compute the version
Current status: the version failure is highlighting the fact that we're not testing the very same image that was just built. This is because 1) the upstream quay.io image is hard-coded, and 2) bioconda-utils uses Trying to get docker to work with the local podman registry has been tricky, at least on a local test instance. Next attempt was to try not using docker at all and switch completely to |
to prepare for uploading
Closing in favor of #1049, which avoids using ghcr.io as a temporary cache and which also does include the bot image. |
This takes the ideas from the code review on #953 and simplifies by refactoring how everything is configured. See #953 (comment) for the specific proposed items, which are addressed here.
The only major difference from those proposed items is storing the conda/mamba versions, which are not clearly defined in requirements. For example, I think mamba comes in from the base image (quay.io/condaforge/linux-anvil-cos7-x86_64). So I kept the same strategy as before, where the create-env depends on the build-env and inspects the conda/mamba versions used there.
Edits 2024-08-10
Here's an overview of the changes...
This is strictly for the base images. They are used for creating images for packages, and once this is merged they will will be pushed to the same quay.io tags as existing base images. But this PR does not deal with creating package images.
(if the nomenclature of images is confusing, see dockerfile inventory for a guide)
The package building has been unified to use a single
build.sh
script which takes an image directory as its only argument. That image directory should haveprepare.sh
,Dockerfile
, andDockerfile.test
. Each<IMAGE DIR>/prepare.sh
sourcesversions.sh
which is the common place to set versions and tags. It also provides some helper functions. You can read about all of this inimages/README.md
.The new
build-images.yml
GitHub workflow handles the interdependencies of the image building and testing. It uses GitHub Container Registry as a temporary storage space for images. After testing, tagged images are pushed to quay.io.The main advantage of this overhaul is to factor out all the commonalities across building images, which otherwise have grown in different directions over the years. This provides just one unified system that maintainers need to understand. The reason it is in this repo rather than
bioconda-containers
is that we have strong dependencies on the version of bioconda-utils, so ideally changes to bioconda-utils should also test that corresponding base images work correctly.NOTE: this does NOT yet replace the bioconda bot image so bioconda-containers is still needed for that.