Browse Source

gitlab: add a weekly container building job

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é <berrange@redhat.com>
Message-ID: <20251117115523.3993105-19-alex.bennee@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
pull/311/head
Alex Bennée 9 months ago
parent
commit
8bec7b9874
  1. 5
      .gitlab-ci.d/container-template.yml
  2. 39
      .gitlab-ci.d/containers.yml
  3. 11
      tests/docker/Makefile.include

5
.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'

39
.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"'

11
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)

Loading…
Cancel
Save