name: CI on: push: branches: [ master, dev ] pull_request: branches: [ master, dev ] jobs: build-ubuntu: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-22.04, ubuntu-24.04] steps: - uses: actions/checkout@v4 - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y cmake ninja-build libboost-dev libfmt-dev - name: Configure run: | cmake -B build -G Ninja \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DDISABLE_COLOR=ON \ -DUSE_EXTERNAL_FMT=ON \ -DUSE_BOOST_PRETTY_FUNCTION=ON - name: Build run: cmake --build build - name: Test run: | cd build ctest -V --output-on-failure build-fedora: runs-on: ubuntu-latest strategy: matrix: fedora: [40, 41, 42] container: fedora:${{ matrix.fedora }} steps: - uses: actions/checkout@v4 - name: Install dependencies run: | dnf install -y gcc-c++ cmake ninja-build boost-devel fmt-devel - name: Configure run: | cmake -B build -G Ninja \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DDISABLE_COLOR=ON \ -DUSE_EXTERNAL_FMT=ON \ -DUSE_BOOST_PRETTY_FUNCTION=ON - name: Build run: cmake --build build - name: Test run: | cd build ctest -V --output-on-failure build-macos: runs-on: ${{ matrix.os }} strategy: matrix: os: [macos-14, macos-15, macos-15-intel] steps: - uses: actions/checkout@v4 - name: Cache Homebrew packages uses: actions/cache@v4 with: path: | ~/Library/Caches/Homebrew /usr/local/Homebrew/Library/Taps key: ${{ runner.os }}-${{ matrix.os }}-brew-${{ hashFiles('.github/workflows/ci.yml') }} restore-keys: | ${{ runner.os }}-${{ matrix.os }}-brew- - name: Install dependencies run: | brew install cmake ninja boost fmt - name: Configure run: | cmake -B build -G Ninja \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DDISABLE_COLOR=ON \ -DUSE_EXTERNAL_FMT=ON \ -DUSE_BOOST_PRETTY_FUNCTION=ON - name: Build run: cmake --build build - name: Test run: | cd build ctest -V --output-on-failure build-macos-self-hosted: runs-on: macOS_15.7 steps: - uses: actions/checkout@v4 - name: Configure run: | cmake -B build -G Ninja \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DDISABLE_COLOR=ON \ -DUSE_EXTERNAL_FMT=ON \ -DUSE_BOOST_PRETTY_FUNCTION=ON - name: Build run: cmake --build build - name: Test run: | cd build ctest -V --output-on-failure