mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-09 01:18:00 +03:00
ci: Fetch list of available container images dynamically
Any static list of images is destined to become outdated eventually, so let's start generating it dynamically instead. Unfortunately there doesn't seem to be a straightforward way to get Podman/Docker to list all repositories under quay.io/libvirt, so we have to resort to searching and filtering manually; and since the two tools behave slightly differently in that regard, it's more sane to have the logic in a separate shell script than it would be to keep it inline in the Makefile with all the annoying escaping doing so would entail. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
parent
65a63d8864
commit
3e3cad5238
@ -75,6 +75,7 @@ EXTRA_DIST = \
|
||||
build-aux/vc-list-files \
|
||||
ci/Makefile \
|
||||
ci/build.sh \
|
||||
ci/list-images.sh \
|
||||
ci/prepare.sh \
|
||||
$(NULL)
|
||||
|
||||
|
37
ci/Makefile
37
ci/Makefile
@ -238,6 +238,17 @@ ci-build@%:
|
||||
ci-check@%:
|
||||
$(MAKE) -C $(CI_ROOTDIR) ci-build@$* CI_MAKE_ARGS="check"
|
||||
|
||||
ci-list-images:
|
||||
@echo
|
||||
@echo "Available x86 container images:"
|
||||
@echo
|
||||
@sh list-images.sh "$(CI_ENGINE)" "$(CI_IMAGE_PREFIX)" | grep -v cross
|
||||
@echo
|
||||
@echo "Available cross-compiler container images:"
|
||||
@echo
|
||||
@sh list-images.sh "$(CI_ENGINE)" "$(CI_IMAGE_PREFIX)" | grep cross
|
||||
@echo
|
||||
|
||||
ci-help:
|
||||
@echo "Build libvirt inside containers used for CI"
|
||||
@echo
|
||||
@ -246,30 +257,8 @@ ci-help:
|
||||
@echo " ci-build@\$$IMAGE - run a default 'make'"
|
||||
@echo " ci-check@\$$IMAGE - run a 'make check'"
|
||||
@echo " ci-shell@\$$IMAGE - run an interactive shell"
|
||||
@echo
|
||||
@echo "Available x86 container images:"
|
||||
@echo
|
||||
@echo " centos-7"
|
||||
@echo " debian-9"
|
||||
@echo " debian-10"
|
||||
@echo " debian-sid"
|
||||
@echo " fedora-29"
|
||||
@echo " fedora-30"
|
||||
@echo " fedora-rawhide"
|
||||
@echo " ubuntu-16"
|
||||
@echo " ubuntu-18"
|
||||
@echo
|
||||
@echo "Available cross-compiler container images:"
|
||||
@echo
|
||||
@echo " debian-{9,10,sid}-cross-aarch64"
|
||||
@echo " debian-{9,10,sid}-cross-armv6l"
|
||||
@echo " debian-{9,10,sid}-cross-armv7l"
|
||||
@echo " debian-{10,sid}-cross-i686"
|
||||
@echo " debian-{9,10,sid}-cross-mips64el"
|
||||
@echo " debian-{9,10,sid}-cross-mips"
|
||||
@echo " debian-{9,10,sid}-cross-mipsel"
|
||||
@echo " debian-{9,10,sid}-cross-ppc64le"
|
||||
@echo " debian-{9,10,sid}-cross-s390x"
|
||||
@echo " ci-list-images - list available images"
|
||||
@echo " ci-help - show this help message"
|
||||
@echo
|
||||
@echo "Available make variables:"
|
||||
@echo
|
||||
|
26
ci/list-images.sh
Normal file
26
ci/list-images.sh
Normal file
@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
|
||||
engine="$1"
|
||||
prefix="$2"
|
||||
|
||||
do_podman() {
|
||||
# Podman freaks out if the search term ends with a dash, which ours
|
||||
# by default does, so let's strip it. The repository name is the
|
||||
# second field in the output, and it already starts with the registry
|
||||
podman search --limit 100 "${prefix%-}" | while read _ repo _; do
|
||||
echo "$repo"
|
||||
done
|
||||
}
|
||||
|
||||
do_docker() {
|
||||
# Docker doesn't include the registry name in the output, so we have
|
||||
# to add it. The repository name is the first field in the output
|
||||
registry="${prefix%%/*}"
|
||||
docker search --limit 100 "$prefix" | while read repo _; do
|
||||
echo "$registry/$repo"
|
||||
done
|
||||
}
|
||||
|
||||
"do_$engine" | grep "^$prefix" | sed "s,^$prefix,,g" | while read repo; do
|
||||
echo " $repo"
|
||||
done | sort -u
|
Loading…
Reference in New Issue
Block a user