xref: /curl/.github/workflows/linux32.yml (revision 1b844967)
1# Copyright (C) Dan Fandrich
2#
3# SPDX-License-Identifier: curl
4
5name: Linux 32-bit
6
7'on':
8  push:
9    branches:
10      - master
11      - '*/ci'
12    paths-ignore:
13      - '**/*.md'
14      - '**/CMakeLists.txt'
15      - '.circleci/**'
16      - 'appveyor.*'
17      - 'CMake/**'
18      - 'packages/**'
19      - 'plan9/**'
20      - 'projects/**'
21      - 'winbuild/**'
22  pull_request:
23    branches:
24      - master
25    paths-ignore:
26      - '**/*.md'
27      - '**/CMakeLists.txt'
28      - '.circleci/**'
29      - 'appveyor.*'
30      - 'CMake/**'
31      - 'packages/**'
32      - 'plan9/**'
33      - 'projects/**'
34      - 'winbuild/**'
35
36concurrency:
37  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
38  cancel-in-progress: true
39
40permissions: {}
41
42env:
43  MAKEFLAGS: -j 5
44
45jobs:
46  linux-i686:
47    name: ${{ matrix.build.name }}
48    runs-on: 'ubuntu-22.04'
49    timeout-minutes: 90
50    strategy:
51      fail-fast: false
52      matrix:
53        build:
54          - name: Linux i686
55            install_packages: gcc-11-i686-linux-gnu libssl-dev:i386 zlib1g-dev:i386 libpsl-dev:i386 libbrotli-dev:i386 libzstd-dev:i386
56            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
57
58    steps:
59      - run: |
60          sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
61          sudo dpkg --add-architecture i386
62          sudo apt-get update -y
63          sudo apt-get install -y --no-install-suggests --no-install-recommends libtool autoconf automake pkgconf stunnel4 ${{ matrix.build.install_packages }}
64          sudo python3 -m pip install impacket
65        name: 'install prereqs'
66
67      - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
68
69      - run: autoreconf -fi
70        name: 'autoreconf'
71
72      - run: |
73          ./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-warnings --enable-werror \
74            ${{ matrix.build.configure }}
75        name: 'configure'
76
77      - run: make V=1
78        name: 'make'
79
80      - run: ./src/curl -V
81        name: 'check curl -V output'
82
83      - run: make V=1 -C tests
84        name: 'make tests'
85
86      - run: make V=1 test-ci
87        name: 'run tests'
88        env:
89          TFLAGS: "${{ matrix.build.tflags }}"
90
91      - run: make V=1 examples
92        name: 'make examples'
93