From 717790adde11c08246377188e0bef4e1720262e1 Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Thu, 2 Nov 2023 11:16:20 +0100 Subject: [PATCH] ci: Build RPMs on MinGW Now that the spec file supports selectively disabling the native, mingw32 and mingw64 parts, we can add coverage for the MinGW RPM builds. Signed-off-by: Andrea Bolognani Reviewed-by: Martin Kletzander --- .gitlab-ci.yml | 11 ++++++++--- ci/jobs.sh | 23 ++++++++++++++++++++++- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7dcd07a5c9..8bad761b32 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -57,10 +57,15 @@ include: key: "$CI_JOB_NAME" script: - source ci/jobs.sh - - run_build - - if test "$CROSS" = "i686" ; + - if test -x /usr/bin/rpmbuild && test "$RPM" != "skip"; then - run_test; + run_rpmbuild; + else + run_build; + if test "$CROSS" = "i686"; + then + run_test; + fi; fi .cross_build_job_prebuilt_env: diff --git a/ci/jobs.sh b/ci/jobs.sh index ba522258a1..b9e0494338 100644 --- a/ci/jobs.sh +++ b/ci/jobs.sh @@ -72,10 +72,31 @@ run_potfile() { run_rpmbuild() { run_dist + + # The spec file supports three types of builds: native, mingw32 + # and mingw64. By default they're all enabled, but each of the + # containers in which our CI jobs are executed is only set up for + # one of them, so we have to explicitly disable the other two. + case "$CROSS" in + mingw32) + build1="native" + build2="mingw64" + ;; + mingw64) + build1="native" + build2="mingw32" + ;; + *) + build1="mingw32" + build2="mingw64" + ;; + esac + run_cmd rpmbuild \ --clean \ --nodeps \ - --define "_without_mingw 1" \ + --define "_without_$build1 1" \ + --define "_without_$build2 1" \ -ta build/meson-dist/libvirt-*.tar.xz }