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@xxxxxxxxxx> --- .../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