]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
CI: add a 32-bit i686 Linux build 11799/head
authorDan Fandrich <dan@coneharvesters.com>
Tue, 5 Sep 2023 00:08:19 +0000 (17:08 -0700)
committerDan Fandrich <dan@coneharvesters.com>
Tue, 5 Sep 2023 00:11:44 +0000 (17:11 -0700)
This is done by cross-compiling under regular x86_64 Linux.  Since the
kernel offers backwards compatibility, the binaries can be tested as
normal.

Closes #11799

.github/workflows/linux32.yml [new file with mode: 0644]

diff --git a/.github/workflows/linux32.yml b/.github/workflows/linux32.yml
new file mode 100644 (file)
index 0000000..dae828f
--- /dev/null
@@ -0,0 +1,93 @@
+# Copyright (C) Dan Fandrich
+#
+# SPDX-License-Identifier: curl
+
+name: Linux 32-bit
+
+on:
+  push:
+    branches:
+    - master
+    - '*/ci'
+    paths-ignore:
+    - '**/*.md'
+    - '**/CMakeLists.txt'
+    - '.azure-pipelines.yml'
+    - '.circleci/**'
+    - '.cirrus.yml'
+    - 'appveyor.yml'
+    - 'CMake/**'
+    - 'packages/**'
+    - 'plan9/**'
+    - 'projects/**'
+    - 'winbuild/**'
+  pull_request:
+    branches:
+    - master
+    paths-ignore:
+    - '**/*.md'
+    - '**/CMakeLists.txt'
+    - '.azure-pipelines.yml'
+    - '.circleci/**'
+    - '.cirrus.yml'
+    - 'appveyor.yml'
+    - 'CMake/**'
+    - 'packages/**'
+    - 'plan9/**'
+    - 'projects/**'
+    - 'winbuild/**'
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
+  cancel-in-progress: true
+
+permissions: {}
+
+env:
+  MAKEFLAGS: -j 3
+
+jobs:
+  linux-i686:
+    name: ${{ matrix.build.name }}
+    runs-on: 'ubuntu-22.04'
+    timeout-minutes: 90
+    strategy:
+      fail-fast: false
+      matrix:
+        build:
+        - name: Linux i686
+          install_packages: gcc-11-i686-linux-gnu libssl-dev:i386 zlib1g-dev:i386 libpsl-dev:i386 libbrotli-dev:i386 libzstd-dev:i386
+          configure: --enable-debug --enable-websockets --with-openssl --host=i686-linux-gnu CC=i686-linux-gnu-gcc-11 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig CPPFLAGS=-I/usr/include/i386-linux-gnu LDFLAGS=-L/usr/lib/i386-linux-gnu
+
+    steps:
+    - run: |
+        sudo dpkg --add-architecture i386
+        sudo apt-get update -y
+        sudo apt-get install -y --no-install-suggests --no-install-recommends libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install_packages }}
+        sudo python3 -m pip install impacket
+      name: 'install prereqs'
+
+    - uses: actions/checkout@v3
+
+    - run: autoreconf -fi
+      name: 'autoreconf'
+
+    - run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
+      name: 'configure'
+
+    - run: make V=1
+      name: 'make'
+
+    - run: ./src/curl -V
+      name: 'check curl -V output'
+
+    - run: make V=1 examples
+      name: 'make examples'
+
+    - run: make V=1 -C tests
+      name: 'make tests'
+
+    - run: make V=1 test-ci
+      name: 'run tests'
+      env:
+        TFLAGS: "${{ matrix.build.tflags }}"