From 8bec7b9874235e60f14172618121c60fdbd39302 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alex=20Benn=C3=A9e?= Date: Mon, 17 Nov 2025 11:55:23 +0000 Subject: [PATCH] gitlab: add a weekly container building job MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This will hopefully catch containers that break because of upstream changes as well as keep the container cache fresh. As we have all the container jobs as dependants we tweaks the container template to allow scheduled runs. Because we added a new rules stanza we also need to make sure we catch the normal runs as well. Reviewed-by: Daniel P. Berrangé Message-ID: <20251117115523.3993105-19-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- .gitlab-ci.d/container-template.yml | 5 ++++ .gitlab-ci.d/containers.yml | 39 +++++++++++++++++++++++++++++ tests/docker/Makefile.include | 11 ++++++++ 3 files changed, 55 insertions(+) diff --git a/.gitlab-ci.d/container-template.yml b/.gitlab-ci.d/container-template.yml index 4eec72f383d..82c1b69e8dd 100644 --- a/.gitlab-ci.d/container-template.yml +++ b/.gitlab-ci.d/container-template.yml @@ -19,3 +19,8 @@ - docker push "$TAG" after_script: - docker logout + rules: + # because we want to enable this for scheduled runs we also have to replicate the normal rules + - if: '$CI_PIPELINE_SOURCE == "schedule"' + - if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_BRANCH =~ /^staging/' + - if: '$QEMU_CI && $CI_PROJECT_NAMESPACE != $QEMU_CI_UPSTREAM' diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml index db9b4d5e57f..f7d3e7205dc 100644 --- a/.gitlab-ci.d/containers.yml +++ b/.gitlab-ci.d/containers.yml @@ -33,3 +33,42 @@ amd64-fedora-rust-nightly-container: variables: NAME: fedora-rust-nightly allow_failure: true + +# this scheduled job will trigger all the containers to build +weekly-container-builds: + extends: .container_job_template + allow_failure: true + needs: + # core + - amd64-centos9-container + - amd64-fedora-container + # cross + - amd64-debian-cross-container + - amd64-debian-user-cross-container + - amd64-debian-legacy-cross-container + - arm64-debian-cross-container + - armhf-debian-cross-container + - hexagon-cross-container + - loongarch-debian-cross-container + - i686-debian-cross-container + - mips64el-debian-cross-container + - ppc64el-debian-cross-container + - riscv64-debian-cross-container + - s390x-debian-cross-container + - tricore-debian-cross-container + - xtensa-debian-cross-container + - win64-fedora-cross-container + - wasm-emsdk-cross-container + # containers + - amd64-alpine-container + - amd64-debian-container + - amd64-ubuntu2204-container + - amd64-opensuse-leap-container + - python-container + - amd64-fedora-rust-nightly-container + script: + - apk -U add make bash skopeo + - make docker-verify V=1 DOCKER_DEFAULT_REGISTRY=$CI_REGISTRY_IMAGE + rules: + # this only ever runes as a scheduled build + - if: '$CI_PIPELINE_SOURCE == "schedule"' diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 3959d8a028a..38467cca610 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -49,6 +49,15 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker -t qemu/$* - < $< $(if $V,,> /dev/null),\ "BUILD", $*) +# General rule for inspecting registry images. +docker-verify-%: $(DOCKER_FILES_DIR)/%.docker + $(call quiet-command, \ + skopeo inspect \ + --format '{{.Created}}' \ + docker://$(DOCKER_REGISTRY)/qemu/$* \ + $(if $V,,> /dev/null),\ + "VERIFY", $*) + # Special rule for debootstraped binfmt linux-user images docker-binfmt-image-debian-%: $(DOCKER_FILES_DIR)/debian-bootstrap.docker $(if $(EXECUTABLE),,\ @@ -236,6 +245,8 @@ docker-run: docker-qemu-src docker-image: ${DOCKER_IMAGES:%=docker-image-%} +docker-verify: ${DOCKER_IMAGES:%=docker-verify-%} + docker-clean: $(call quiet-command, $(DOCKER_SCRIPT) clean) -- 2.47.3