| # Copyright 2023 The Khronos Group Inc. |
| # Copyright 2023 Valve Corporation |
| # Copyright 2023 LunarG, Inc. |
| # |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| name: ci |
| |
| on: |
| push: |
| pull_request: |
| branches: |
| - main |
| |
| jobs: |
| build_and_test: |
| runs-on: ${{matrix.os}} |
| strategy: |
| matrix: |
| config: [Debug, Release] |
| os: [ ubuntu-20.04, ubuntu-22.04, windows-latest, macos-latest ] |
| steps: |
| - uses: actions/checkout@v3 |
| - uses: actions/setup-python@v4 |
| with: |
| python-version: '3.8' |
| - name: Test CMake Minimum |
| if: matrix.os == 'ubuntu-20.04' |
| uses: lukka/get-cmake@latest |
| with: |
| cmakeVersion: 3.17.2 |
| - name: Configure |
| run: cmake -S. -B build -D VUL_WERROR=ON -D BUILD_TESTS=ON -D CMAKE_BUILD_TYPE=${{matrix.config}} -D UPDATE_DEPS=ON |
| - name: Build |
| run: cmake --build build --config ${{matrix.config}} --verbose |
| - name: Tests |
| working-directory: ./build |
| run: ctest -C ${{matrix.config}} --output-on-failure |
| - name: Install |
| run: cmake --install build --prefix ${{ github.workspace }}/install --config ${{matrix.config}} |
| - name: Test find_package support |
| run: | |
| cmake -S tests/find_package -B tests/find_package/build -D CMAKE_PREFIX_PATH="${{ github.workspace }}/install;${{ github.workspace }}/external/${{matrix.config}}/Vulkan-Headers/build/install" -D CMAKE_BUILD_TYPE=${{matrix.config}} |
| cmake --build tests/find_package/build --config ${{matrix.config}} --verbose |
| - name: Test add_subdirectory support |
| run: | |
| cmake -S tests/add_subdirectory -B tests/add_subdirectory/build -D CMAKE_BUILD_TYPE=${{matrix.config}} -D GITHUB_VULKAN_HEADER_SOURCE_DIR=${{ github.workspace }}/external/${{matrix.config}}/Vulkan-Headers/ |
| cmake --build tests/add_subdirectory/build --config ${{matrix.config}} --verbose |
| |
| android: |
| runs-on: ubuntu-22.04 |
| steps: |
| - uses: actions/checkout@v3 |
| - uses: actions/setup-python@v4 |
| with: |
| python-version: '3.8' |
| - uses: lukka/get-cmake@latest |
| - name: Configure |
| run: | |
| cmake -S . -B build/ --toolchain $ANDROID_NDK_ROOT/build/cmake/android.toolchain.cmake \ |
| -D ANDROID_PLATFORM=26 \ |
| -D CMAKE_ANDROID_ARCH_ABI=x86_64 \ |
| -D CMAKE_ANDROID_STL_TYPE=c++_static \ |
| -D CMAKE_ANDROID_RTTI=YES \ |
| -D CMAKE_ANDROID_EXCEPTIONS=YES \ |
| -D ANDROID_USE_LEGACY_TOOLCHAIN_FILE=NO \ |
| -D VUL_WERROR=ON \ |
| -D CMAKE_BUILD_TYPE=Release \ |
| -D UPDATE_DEPS=ON \ |
| -G "Ninja" |
| - name: Build |
| run: cmake --build build |
| |
| reuse: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v3 |
| - name: REUSE Compliance Check |
| uses: fsfe/reuse-action@v1 |