[libvirt PATCH 3/3] ci: run a mingw64 job on stable Fedora

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux