From 22b1f7d0323ae2b98048adc8d7b43cca8733f473 Mon Sep 17 00:00:00 2001 From: Dan Fandrich Date: Mon, 4 Sep 2023 17:08:19 -0700 Subject: [PATCH] CI: add a 32-bit i686 Linux build 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 | 93 +++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 .github/workflows/linux32.yml diff --git a/.github/workflows/linux32.yml b/.github/workflows/linux32.yml new file mode 100644 index 0000000000..dae828f437 --- /dev/null +++ b/.github/workflows/linux32.yml @@ -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 }}" -- 2.47.2