Both of the current mingw jobs are marked as 'allow_failure' because
they are running against Fedora rawhide which is an unstable distro.
We need at least one mingw job to be gating to more reliably detect
problems.
This introduces dockerfiles for both mingw variants on Fedora 35
and sets the mingw64 build to run on Fedora 34, and mingw32 on
Fedora rawhide.
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
.../fedora-35-cross-mingw32.Dockerfile | 92 +++++++++++++++++++
.../fedora-35-cross-mingw64.Dockerfile | 92 +++++++++++++++++++
ci/gitlab.yml | 30 ++++--
ci/manifest.yml | 11 ++-
4 files changed, 216 insertions(+), 9 deletions(-)
create mode 100644 ci/containers/fedora-35-cross-mingw32.Dockerfile
create mode 100644 ci/containers/fedora-35-cross-mingw64.Dockerfile
diff --git a/ci/containers/fedora-35-cross-mingw32.Dockerfile
b/ci/containers/fedora-35-cross-mingw32.Dockerfile
new file mode 100644
index 0000000000..0a26a1f9bd
--- /dev/null
+++ b/ci/containers/fedora-35-cross-mingw32.Dockerfile
@@ -0,0 +1,92 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+FROM
registry.fedoraproject.org/fedora:35
+
+RUN dnf install -y nosync && \
+ echo -e '#!/bin/sh\n\
+if test -d /usr/lib64\n\
+then\n\
+ export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
+else\n\
+ export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
+fi\n\
+exec "$@"' > /usr/bin/nosync && \
+ chmod +x /usr/bin/nosync && \
+ nosync dnf update -y && \
+ nosync dnf install -y \
+ augeas \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ cpp \
+ cppi \
+ diffutils \
+ dnsmasq \
+ dwarves \
+ ebtables \
+ firewalld-filesystem \
+ git \
+ glibc-langpack-en \
+ grep \
+ iproute \
+ iproute-tc \
+ iptables \
+ iscsi-initiator-utils \
+ kmod \
+ libxml2 \
+ libxslt \
+ lvm2 \
+ make \
+ meson \
+ nfs-utils \
+ ninja-build \
+ numad \
+ parted \
+ perl-base \
+ polkit \
+ python3 \
+ python3-docutils \
+ python3-flake8 \
+ qemu-img \
+ radvd \
+ rpcgen \
+ rpm-build \
+ scrub \
+ sed \
+ sheepdog \
+ zfs-fuse && \
+ nosync dnf autoremove -y && \
+ nosync dnf clean all -y
+
+RUN nosync dnf install -y \
+ mingw32-curl \
+ mingw32-dbus \
+ mingw32-dlfcn \
+ mingw32-gcc \
+ mingw32-gettext \
+ mingw32-glib2 \
+ mingw32-gnutls \
+ mingw32-headers \
+ mingw32-libssh2 \
+ mingw32-libxml2 \
+ mingw32-pkg-config \
+ mingw32-portablexdr \
+ mingw32-readline && \
+ nosync dnf clean all -y && \
+ rpm -qa | sort > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-gcc
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV NINJA "/usr/bin/ninja"
+ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "i686-w64-mingw32"
+ENV MESON_OPTS "--cross-file=/usr/share/mingw/toolchain-mingw32.meson"
diff --git a/ci/containers/fedora-35-cross-mingw64.Dockerfile
b/ci/containers/fedora-35-cross-mingw64.Dockerfile
new file mode 100644
index 0000000000..e2a3ba9d6d
--- /dev/null
+++ b/ci/containers/fedora-35-cross-mingw64.Dockerfile
@@ -0,0 +1,92 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+FROM
registry.fedoraproject.org/fedora:35
+
+RUN dnf install -y nosync && \
+ echo -e '#!/bin/sh\n\
+if test -d /usr/lib64\n\
+then\n\
+ export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
+else\n\
+ export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
+fi\n\
+exec "$@"' > /usr/bin/nosync && \
+ chmod +x /usr/bin/nosync && \
+ nosync dnf update -y && \
+ nosync dnf install -y \
+ augeas \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ cpp \
+ cppi \
+ diffutils \
+ dnsmasq \
+ dwarves \
+ ebtables \
+ firewalld-filesystem \
+ git \
+ glibc-langpack-en \
+ grep \
+ iproute \
+ iproute-tc \
+ iptables \
+ iscsi-initiator-utils \
+ kmod \
+ libxml2 \
+ libxslt \
+ lvm2 \
+ make \
+ meson \
+ nfs-utils \
+ ninja-build \
+ numad \
+ parted \
+ perl-base \
+ polkit \
+ python3 \
+ python3-docutils \
+ python3-flake8 \
+ qemu-img \
+ radvd \
+ rpcgen \
+ rpm-build \
+ scrub \
+ sed \
+ sheepdog \
+ zfs-fuse && \
+ nosync dnf autoremove -y && \
+ nosync dnf clean all -y
+
+RUN nosync dnf install -y \
+ mingw64-curl \
+ mingw64-dbus \
+ mingw64-dlfcn \
+ mingw64-gcc \
+ mingw64-gettext \
+ mingw64-glib2 \
+ mingw64-gnutls \
+ mingw64-headers \
+ mingw64-libssh2 \
+ mingw64-libxml2 \
+ mingw64-pkg-config \
+ mingw64-portablexdr \
+ mingw64-readline && \
+ nosync dnf clean all -y && \
+ rpm -qa | sort > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-cc &&
\
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-gcc
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV NINJA "/usr/bin/ninja"
+ENV PYTHON "/usr/bin/python3"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "x86_64-w64-mingw32"
+ENV MESON_OPTS "--cross-file=/usr/share/mingw/toolchain-mingw64.meson"
diff --git a/ci/gitlab.yml b/ci/gitlab.yml
index 964e93d6d4..120ece8fb7 100644
--- a/ci/gitlab.yml
+++ b/ci/gitlab.yml
@@ -342,6 +342,20 @@ s390x-debian-sid-container:
NAME: debian-sid-cross-s390x
+mingw32-fedora-35-container:
+ extends: .container_job
+ allow_failure: true
+ variables:
+ NAME: fedora-35-cross-mingw32
+
+
+mingw64-fedora-35-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: fedora-35-cross-mingw64
+
+
mingw32-fedora-rawhide-container:
extends: .container_job
allow_failure: true
@@ -609,24 +623,24 @@ s390x-debian-sid:
CROSS: s390x
-mingw32-fedora-rawhide:
+mingw64-fedora-35:
extends: .cross_build_job
needs:
- - mingw32-fedora-rawhide-container
- allow_failure: true
+ - mingw64-fedora-35-container
+ allow_failure: false
variables:
- NAME: fedora-rawhide
- CROSS: mingw32
+ NAME: fedora-35
+ CROSS: mingw64
-mingw64-fedora-rawhide:
+mingw32-fedora-rawhide:
extends: .cross_build_job
needs:
- - mingw64-fedora-rawhide-container
+ - mingw32-fedora-rawhide-container
allow_failure: true
variables:
NAME: fedora-rawhide
- CROSS: mingw64
+ CROSS: mingw32
# Native cirrus build jobs
diff --git a/ci/manifest.yml b/ci/manifest.yml
index 460fdb4d34..2b64effef8 100644
--- a/ci/manifest.yml
+++ b/ci/manifest.yml
@@ -127,7 +127,15 @@ targets:
fedora-34: x86_64
- fedora-35: x86_64
+ fedora-35:
+ jobs:
+ - arch: x86_64
+
+ - arch: mingw32
+ allow-failure: true
+ builds: false
+
+ - arch: mingw64
fedora-rawhide:
jobs:
@@ -146,6 +154,7 @@ targets:
- arch: mingw64
allow-failure: true
+ builds: false
freebsd-12: x86_64
--
2.33.1