Inital zig build support and integrating it with the CI #540
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI Build | ||
|
Check failure on line 1 in .github/workflows/build.yml
|
||
| on: | ||
| push: | ||
| branches: [ main ] | ||
| pull_request: | ||
| branches: [ main ] | ||
| env: | ||
| BUILD_TYPE: Debug | ||
| jobs: | ||
| build-ubuntu-gcc: | ||
| name: ubuntu-gcc | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 4 | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Configure CMake | ||
| run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBOX2D_SAMPLES=OFF -DBUILD_SHARED_LIBS=OFF -DBOX2D_VALIDATE=ON -DCMAKE_COMPILE_WARNING_AS_ERROR=ON | ||
| - name: Build | ||
| run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} | ||
| - name: Test | ||
| working-directory: ${{github.workspace}}/build | ||
| run: ./bin/test | ||
| build-ubuntu-clang: | ||
| name: ubuntu-clang | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Configure CMake | ||
| run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_CXX_COMPILER=clang++-18 -DCMAKE_C_COMPILER=clang -DBOX2D_SAMPLES=OFF -DBUILD_SHARED_LIBS=OFF -DBOX2D_VALIDATE=ON -DCMAKE_COMPILE_WARNING_AS_ERROR=ON | ||
| - name: Build | ||
| run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} | ||
| - name: Test | ||
| working-directory: ${{github.workspace}}/build | ||
| run: ./bin/test | ||
| build-macos: | ||
| name: macos | ||
| runs-on: macos-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Configure CMake | ||
| run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBOX2D_SAMPLES=OFF -DBOX2D_SANITIZE=ON -DBUILD_SHARED_LIBS=OFF -DBOX2D_VALIDATE=ON -DCMAKE_COMPILE_WARNING_AS_ERROR=ON | ||
| - name: Build | ||
| run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} | ||
| - name: Test | ||
| working-directory: ${{github.workspace}}/build | ||
| run: ./bin/test | ||
| build-windows: | ||
| name: windows | ||
| runs-on: windows-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Setup MSVC dev command prompt | ||
| uses: TheMrMilchmann/setup-msvc-dev@v3 | ||
| with: | ||
| arch: x64 | ||
| - name: Configure CMake | ||
| run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBOX2D_SAMPLES=OFF -DBOX2D_SANITIZE=ON -DBUILD_SHARED_LIBS=OFF -DBOX2D_VALIDATE=ON -DCMAKE_COMPILE_WARNING_AS_ERROR=ON | ||
| # run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBOX2D_SAMPLES=OFF -DBUILD_SHARED_LIBS=OFF | ||
| - name: Build | ||
| run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} | ||
| - name: Test | ||
| working-directory: ${{github.workspace}}/build | ||
| run: ./bin/${{env.BUILD_TYPE}}/test | ||
| samples-windows-static: | ||
| name: samples-windows-static | ||
| runs-on: windows-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Setup MSVC dev command prompt | ||
| uses: TheMrMilchmann/setup-msvc-dev@v3 | ||
| with: | ||
| arch: x64 | ||
| - name: Configure CMake | ||
| run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=Release -DBOX2D_SAMPLES=ON -DBUILD_SHARED_LIBS=OFF -DBOX2D_UNIT_TESTS=OFF | ||
| - name: Build | ||
| run: cmake --build ${{github.workspace}}/build --config Release | ||
| samples-windows-dynamic: | ||
| name: samples-windows-dynamic | ||
| runs-on: windows-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Setup MSVC dev command prompt | ||
| uses: TheMrMilchmann/setup-msvc-dev@v3 | ||
| with: | ||
| arch: x64 | ||
| - name: Configure CMake | ||
| run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=Release -DBOX2D_SAMPLES=ON -DBUILD_SHARED_LIBS=ON -DBOX2D_UNIT_TESTS=OFF | ||
| - name: Build | ||
| run: cmake --build ${{github.workspace}}/build --config Release | ||
| samples-macos-static: | ||
| name: samples-macos-static | ||
| runs-on: macos-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Configure CMake | ||
| run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=Release -DBOX2D_SAMPLES=ON -DBUILD_SHARED_LIBS=OFF -DBOX2D_UNIT_TESTS=OFF | ||
| - name: Build | ||
| run: cmake --build ${{github.workspace}}/build --config Release | ||
| samples-macos-dynamic: | ||
| name: samples-macos-dynamic | ||
| runs-on: macos-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Configure CMake | ||
| run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=Release -DBOX2D_SAMPLES=ON -DBUILD_SHARED_LIBS=ON -DBOX2D_UNIT_TESTS=OFF | ||
| - name: Build | ||
| run: cmake --build ${{github.workspace}}/build --config Release | ||
| samples-ubuntu-gcc-static: | ||
| name: samples-ubuntu-gcc-static | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 4 | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Install X11, Wayland & GL development libraries | ||
| run: sudo apt-get update && sudo apt-get install -y libx11-dev wayland-protocols libwayland-dev libxkbcommon-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libgl-dev | ||
| - name: Configure CMake | ||
| run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=Release -DBOX2D_SAMPLES=ON -DBUILD_SHARED_LIBS=OFF -DBOX2D_UNIT_TESTS=OFF | ||
| - name: Build | ||
| run: cmake --build ${{github.workspace}}/build --config Release | ||
| zig-matrix: | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| zig: [0.15.1] | ||
| os: [ubuntu-latest, windows-latest, macos-latest] | ||
| shared: [true, false] | ||
| runs-on: ${{ matrix.os }} | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Setup zig | ||
| - uses: mlugg/setup-zig@v2 | ||
| with: | ||
| version: ${{ matrix.zig }} | ||
| - name: Build | ||
| run: zig build -Dshared=${{ matrix.shared }} | ||
| - name: Test | ||
| run: ./zig-out/bin/test | ||