blob: 0e3e11a811dbec9a7a8800ec45be51b930708613 [file] [log] [blame]
# 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@v4
- 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 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
strategy:
matrix:
abi: [ armeabi-v7a, arm64-v8a ]
steps:
- uses: actions/checkout@v4
- 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=${{matrix.abi}} \
-D CMAKE_ANDROID_STL_TYPE=c++_static \
-D ANDROID_USE_LEGACY_TOOLCHAIN_FILE=NO \
-D VUL_WERROR=ON \
-D CMAKE_BUILD_TYPE=Release \
-D UPDATE_DEPS=ON \
-D BUILD_TESTS=ON \
-G "Ninja"
- name: Build
run: cmake --build build
reuse:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: REUSE Compliance Check
uses: fsfe/reuse-action@v2
# Test to ensure we don't accidentally break the Chromium build.
chromium:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install WSI dependencies
run: sudo apt-get -qq update && sudo apt-get install -y libwayland-dev xorg-dev
- name: Test chromium build
run: python scripts/gn/gn.py
generate_source:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Generate source
run: |
scripts/update_deps.py --dir external --no-build
scripts/generate_source.py external/Vulkan-Headers/registry/
- run: git diff --exit-code