69 lines
1.8 KiB
YAML
69 lines
1.8 KiB
YAML
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
|