-
Notifications
You must be signed in to change notification settings - Fork 6
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
ci: Use environment variables to set the major and minor versions #69
base: main
Are you sure you want to change the base?
Conversation
Use same versions as in the other Docker images: - major -> 3 - minor -> 0 Suggested-at: bioconda#68 (comment) Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
@daler Please review when you have a minute! |
Thanks. At first glance looks good, but I'm trying to figure out why we get the skipped job that looks like "Build image / quay.io/bioconda/${{ matrix.cfg.DOCKER_MANIFEST }}:${{ matrix.cfg.DOCKER_TAG }}": I would have expected the placeholders to be filled in. Looking at the earlier jobs in the yaml, they're not using This is hard to test because of the jobs that only run on master. i think the best way to do test this is to edit the CI yaml to upload on a mock branch ("mock-master" or something) and also edit the names and containers to include "test" or something so they can be easily deleted from the registry later. Then merge into the "mock-master" branch to verify that upload doesn't happen here, but does happen upon merge to mock-master. Once we confirm those containers and manifests are correctly uploaded on the mock branch, then branches and image names can be reverted back to the production values. |
Actually I have tried to debug this few weeks ago. I will try to debug it again in my fork! If I don't find a way I will ask in Github Actions support forums. |
If we are using matrix:
include:
- DOCKER_MANIFEST: bioconda-utils-build-env-cos7
DOCKER_TAG: "latest"
DOCKER_IMAGES: "quay.io/<<USER>>/bioconda-utils-build-env-cos7:<<TAG>>,quay.io/<<USER>>/bioconda-utils-build-env-cos7-aarch64:<<TAG>>" Then the And if we are using I we don't want to use matrix, maybe [1] https://stackoverflow.com/a/68940067 |
It looks like a Github Actions issue to me. A PR with a new dummy workflow that I created just to debug the issue: martin-g#8 I'll keep you posted! |
Ah, interesting. In looking a little more closely at this, my interpretation is that matrix:
include:
- DOCKER_MANIFEST: bioconda-utils-build-env-cos7
DOCKER_TAG: "latest"
DOCKER_IMAGES: "quay.io/<<USER>>/bioconda-utils-build-env-cos7:<<TAG>>,quay.io/<<USER>>/bioconda-utils-build-env-cos7-aarch64:<<TAG>>" only needs to be in the matrix so that the later job using the I'm always a little concerned using 3rd-party actions. Sure, they're convenient, but if anything goes wrong it's that much more of a headache to figure out and fix. Can we instead just use bash? I haven't learned the details regarding manifests, but would something like this work with docker manifest create \
quay.io/bioconda/bioconda-utils-build-env-cos7:${{ env.MAJOR_VERSION}.${{ env.MINOR_VERSION }} \
quay.io/bioconda/bioconda-utils-build-env-cos7-x86_64:${{ env.MAJOR_VERSION }}.${{ env.MINOR_VERSION }} \
quay.io/bioconda/bioconda-utils-build-env-cos7-aarch64:${{ env.MAJOR_VERSION }}.${{ env.MINOR_VERSION }}
# maybe some docker manifest annotate calls here?
docker manifest inspect \
quay.io/bioconda/bioconda-utils-build-env-cos7:${{ env.MAJOR_VERSION}.${{ env.MINOR_VERSION }}
docker manifest push \
quay.io/bioconda/bioconda-utils-build-env-cos7:${{ env.MAJOR_VERSION }}.${{ env.MINOR_VERSION }}
if so, that would bypass the need for the matrix stuff and would be way more maintainable over the long term. I may be missing something here though. |
I've used a matrix because I anticipated adding more tags in addition to No matter whether A successful Docker manifest push could be seen in my fork (uses
But I will rework it tomorrow to use |
Install QEMU for all CPU architectures but amd64. At the moment this is just arm64 but now adding a new arch will not require changes to this step Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
Closing this PR to be able to test the branch in my fork. |
Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
Split by whitespace Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
Here is the PR with successful build + push to my Quay.io account: |
Remove debug statements and commented out code Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
Use same versions as in the other Docker images:
Use
docker manifest
cli to create and push the manifest.Improve the step that installs QEMU to be better prepared for adding support for more CPU architectures.
Suggested-at: #68 (comment)