]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
ci: add multilib (32bit) CI for Arch, Debian, Ubuntu
authorEmil Velikov <emil.l.velikov@gmail.com>
Fri, 6 Sep 2024 19:45:51 +0000 (20:45 +0100)
committerLucas De Marchi <lucas.de.marchi@gmail.com>
Sat, 7 Sep 2024 06:31:44 +0000 (01:31 -0500)
Enable it only for meson, as we plan to phase out autotools soonish.
Also don't bother with the openssl/compression paths for now.

AFAICT there is no multilib package on Alpine. Fedora should have one,
but I couldn't find it from a quick search.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/110
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
.github/actions/setup-archlinux/action.yml
.github/actions/setup-debian/action.yml
.github/actions/setup-ubuntu/action.yml
.github/workflows/main.yml

index 54cec61a37cf04cdad0bbc819e8fc6f5f86b02a0..27f14f83af9ddb3b092a896cf5ba5a53e9ea6aad 100644 (file)
@@ -6,6 +6,8 @@ runs:
     - name: Install dependencies
       shell: bash
       run: |
+        # Enable multilib, for building 32bit binaries
+        echo -e '[multilib]\nInclude = /etc/pacman.d/mirrorlist' >> /etc/pacman.conf
         # Semi-regularly the packager key may have (temporarily) expired.
         # Somewhat robust solution is to wipe the local keyring and
         # regenerate/reinstall it prior to any other packages on the system.
@@ -15,6 +17,7 @@ runs:
         pacman --noconfirm -Sy archlinux-keyring
 
         pacman --noconfirm -Su \
+          multilib-devel \
           linux-headers \
           meson \
           scdoc \
index cfef1b0ef172847f2f17300437e081d64b335d92..b2b4d8147d8d82bba9548c12d6e87310815916af 100644 (file)
@@ -11,6 +11,7 @@ runs:
           build-essential \
           autoconf \
           automake \
+          gcc-multilib \
           git \
           gtk-doc-tools \
           libssl-dev \
index 65c8eb3d4e125ab132b9abf84f4cd81f293f2002..8bb2eb76a682a285a7caa8f9598f8323f8cfed31 100644 (file)
@@ -11,6 +11,7 @@ runs:
           build-essential \
           autoconf \
           automake \
+          gcc-multilib \
           git \
           gtk-doc-tools \
           libssl-dev \
index 7c239f749655184531abccb09b8374d39930c1f3..d3fecee8e8164fee2898074e2e41c7be63cee4f4 100644 (file)
@@ -19,12 +19,16 @@ jobs:
         build: ['meson', 'autotools']
         container:
           - name: 'ubuntu:22.04'
+            multilib: 'true'
           - name: 'ubuntu:24.04'
+            multilib: 'true'
           - name: 'archlinux:base-devel'
+            multilib: 'true'
           - name: 'fedora:latest'
           - name: 'alpine:latest'
             meson_setup: '-D docs=false'
           - name: 'debian:unstable'
+            multilib: 'true'
 
     container:
       image: ${{ matrix.container.name }}
@@ -107,3 +111,15 @@ jobs:
       - name: distcheck (autotools)
         if: ${{ matrix.build == 'autotools' }}
         run: cd build && make distcheck
+
+      - name: configure (32bit) (meson)
+        if: ${{ matrix.build == 'meson' && matrix.container.multilib == 'true' }}
+        run: mkdir build32 && cd build32 && CC='gcc -m32' meson setup . ..
+
+      - name: build (32bit) (meson)
+        if: ${{ matrix.build == 'meson' && matrix.container.multilib == 'true' }}
+        run: cd build32 && meson compile
+
+      - name: test (32bit) (meson)
+        if: ${{ matrix.build == 'meson' && matrix.container.multilib == 'true' }}
+        run: cd build32 && meson test