124 lines
3.9 KiB
YAML
124 lines
3.9 KiB
YAML
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@v4
|
|
- 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@v4
|
|
- 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@v4
|
|
- 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@v4
|
|
- 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@v4
|
|
- 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@v4
|
|
- 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@v4
|
|
- 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/
|