From 70af37b9a849ec43969a154d46d6a8548a60ca31 Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Fri, 6 Sep 2024 20:45:51 +0100 Subject: [PATCH] ci: add multilib (32bit) CI for Arch, Debian, Ubuntu 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 Link: https://github.com/kmod-project/kmod/pull/110 Signed-off-by: Lucas De Marchi --- .github/actions/setup-archlinux/action.yml | 3 +++ .github/actions/setup-debian/action.yml | 1 + .github/actions/setup-ubuntu/action.yml | 1 + .github/workflows/main.yml | 16 ++++++++++++++++ 4 files changed, 21 insertions(+) diff --git a/.github/actions/setup-archlinux/action.yml b/.github/actions/setup-archlinux/action.yml index 54cec61a..27f14f83 100644 --- a/.github/actions/setup-archlinux/action.yml +++ b/.github/actions/setup-archlinux/action.yml @@ -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 \ diff --git a/.github/actions/setup-debian/action.yml b/.github/actions/setup-debian/action.yml index cfef1b0e..b2b4d814 100644 --- a/.github/actions/setup-debian/action.yml +++ b/.github/actions/setup-debian/action.yml @@ -11,6 +11,7 @@ runs: build-essential \ autoconf \ automake \ + gcc-multilib \ git \ gtk-doc-tools \ libssl-dev \ diff --git a/.github/actions/setup-ubuntu/action.yml b/.github/actions/setup-ubuntu/action.yml index 65c8eb3d..8bb2eb76 100644 --- a/.github/actions/setup-ubuntu/action.yml +++ b/.github/actions/setup-ubuntu/action.yml @@ -11,6 +11,7 @@ runs: build-essential \ autoconf \ automake \ + gcc-multilib \ git \ gtk-doc-tools \ libssl-dev \ diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7c239f74..d3fecee8 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -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 -- 2.47.2