Raw
1 name: CI
2
3 on:
4 push:
5 branches: [ main ]
6 pull_request:
7 branches: [ main ]
8
9 jobs:
10 build:
11 strategy:
12 matrix:
13 platform:
14 - os: ubuntu-latest
15 generator: Unix Makefiles
16 env:
17 CFLAGS: "-Werror -Wall -Wextra"
18 - os: ubuntu-latest
19 generator: Unix Makefiles
20 env:
21 CC: "clang"
22 CFLAGS: "-Werror -Wall -Wextra -fsanitize=leak"
23 - os: ubuntu-latest
24 generator: Unix Makefiles
25 image: i386/debian:latest
26 env:
27 CFLAGS: "-Werror -Wall -Wextra"
28 - os: macos-latest
29 generator: Unix Makefiles
30 env:
31 CFLAGS: "-Werror -Wall -Wextra"
32 - os: windows-latest
33 generator: Visual Studio 17 2022
34 - os: windows-latest
35 generator: MSYS Makefiles
36 env:
37 CFLAGS: "-Werror -Wall -Wextra"
38 - os: windows-latest
39 generator: MinGW Makefiles
40 env:
41 CFLAGS: "-Werror -Wall -Wextra"
42 fail-fast: false
43
44 runs-on: ${{ matrix.platform.os }}
45 container: ${{matrix.platform.image}}
46
47 env:
48 CC: ${{matrix.platform.env.CC}}
49 CFLAGS: ${{matrix.platform.env.CFLAGS}}
50
51 steps:
52 - name: Prepare 32 bit container image
53 if: matrix.platform.image == 'i386/debian:latest'
54 run: apt -q update && apt -q -y install cmake gcc libc6-amd64 lib64stdc++6 make python3
55 - name: Check out
56 uses: actions/checkout@v6
57 - name: Build
58 shell: bash
59 run: |
60 mkdir build
61 cd build
62 cmake .. -G "${{matrix.platform.generator}}"
63 cmake --build . --verbose
64 - name: Test
65 shell: bash
66 run: |
67 cd build
68 CTEST_OUTPUT_ON_FAILURE=1 ctest --build-config Debug