name: Presubmit on: [push, pull_request] permissions: contents: read jobs: build: name: Build ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] steps: - uses: actions/checkout@v3 - name: Install Ubuntu packages if: matrix.os == 'ubuntu-latest' run: sudo apt install -y dos2unix - name: Install macOS packages if: matrix.os == 'macos-latest' run: brew install dos2unix - name: Build run: | mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=install .. cmake --build . --target install - name: Build spec tools run: | cd tools/buildHeaders mkdir build cd build cmake .. cmake --build . --target install - name: Build headers run: | cd tools/buildHeaders ./bin/makeHeaders - name: Check generated headers run: git diff --exit-code test_cmake_min_required: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: lukka/get-cmake@latest with: cmakeVersion: 3.14.0 - name: CMake build run: | cmake -S . -B build/ -D CMAKE_BUILD_TYPE=Debug -G "Ninja" -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/build/install/ cmake --build build --target install test_cmake_latest: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: lukka/get-cmake@latest - name: CMake build run: | cmake -S . -B build/ -D CMAKE_BUILD_TYPE=Debug -G "Ninja" cmake --install build/ --prefix build/install add_subdirectory: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: lukka/get-cmake@latest with: cmakeVersion: 3.15.0 - name: Build spirv-headers with testing enabled run: | cmake -S . -B build/ -D BUILD_TESTS=ON -D CMAKE_BUILD_TYPE=Debug -G "Ninja" cmake --build build find_package: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: lukka/get-cmake@latest with: cmakeVersion: 3.15.0 - name: Install spirv-headers run: | cmake -S . -B build/ cmake --install build/ --prefix build/install - name: Check spirv-headers find_package support run: | cmake -S tests/find_package -B tests/find_package/build/ -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build/install cmake --build tests/find_package/build/ find_pkg_config: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: lukka/get-cmake@latest with: cmakeVersion: 3.15.0 - name: Install spirv-headers run: | cmake -S . -B build/ -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/build/install/ cmake --install build/ - name: Check spirv-headers pkg_config support run: | cmake -S tests/pkg_config -B tests/pkg_config/build/ -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build/install cmake --build tests/pkg_config/build/ # https://github.com/KhronosGroup/SPIRV-Headers/issues/282 find_pkg_config_absolute: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: lukka/get-cmake@latest with: cmakeVersion: 3.15.0 - name: Install spirv-headers with CMAKE_INSTALL_INCLUDEDIR being absolute run: | cmake -S . -B build/ -D CMAKE_INSTALL_INCLUDEDIR=${GITHUB_WORKSPACE}/build/install/include -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/build/install/ cmake --install build/ - name: Check spirv-headers pkg_config support run: | cmake -S tests/pkg_config -B tests/pkg_config/build/ -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build/install cmake --build tests/pkg_config/build/