| name: CI |
| |
| on: |
| push: |
| branches: [ main ] |
| pull_request: |
| branches: [ main ] |
| |
| jobs: |
| build: |
| strategy: |
| matrix: |
| platform: |
| - os: ubuntu-latest |
| generator: Unix Makefiles |
| env: |
| CFLAGS: "-Werror -Wall -Wextra" |
| - os: ubuntu-latest |
| generator: Unix Makefiles |
| env: |
| CC: "clang" |
| CFLAGS: "-Werror -Wall -Wextra -fsanitize=leak" |
| - os: ubuntu-latest |
| generator: Unix Makefiles |
| image: i386/debian:latest |
| env: |
| CFLAGS: "-Werror -Wall -Wextra" |
| - os: macos-latest |
| generator: Unix Makefiles |
| env: |
| CFLAGS: "-Werror -Wall -Wextra" |
| - os: windows-latest |
| generator: Visual Studio 17 2022 |
| - os: windows-latest |
| generator: MSYS Makefiles |
| env: |
| CFLAGS: "-Werror -Wall -Wextra" |
| - os: windows-latest |
| generator: MinGW Makefiles |
| env: |
| CFLAGS: "-Werror -Wall -Wextra" |
| fail-fast: false |
| |
| runs-on: ${{ matrix.platform.os }} |
| container: ${{matrix.platform.image}} |
| |
| env: |
| CC: ${{matrix.platform.env.CC}} |
| CFLAGS: ${{matrix.platform.env.CFLAGS}} |
| |
| steps: |
| - name: Prepare 32 bit container image |
| if: matrix.platform.image == 'i386/debian:latest' |
| run: apt -q update && apt -q -y install cmake gcc libc6-amd64 lib64stdc++6 make python3 |
| - name: Check out |
| uses: actions/checkout@v4 |
| - name: Build |
| shell: bash |
| run: | |
| mkdir build |
| cd build |
| cmake .. -G "${{matrix.platform.generator}}" |
| cmake --build . --verbose |
| - name: Test |
| shell: bash |
| run: | |
| cd build |
| CTEST_OUTPUT_ON_FAILURE=1 ctest --build-config Debug |