blob: c4bd57d199be5336febb317b35e698630b267e11 [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@v5
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
- run: cmake -S. -B build -D VUL_WERROR=ON -D BUILD_TESTS=ON -D CMAKE_BUILD_TYPE=${{matrix.config}} -D UPDATE_DEPS=ON
- run: cmake --build build --config ${{matrix.config}} --verbose
- run: ctest -C ${{matrix.config}} --output-on-failure
working-directory: build/
windows-arm64:
runs-on: windows-latest
env:
CMAKE_GENERATOR: Ninja
steps:
- uses: actions/checkout@v4
- uses: ilammy/msvc-dev-cmd@v1
with:
arch: amd64_arm64
- run: cmake -S. -B build -D VUL_WERROR=ON -D CMAKE_BUILD_TYPE=Debug -D UPDATE_DEPS=ON
- run: cmake --build build
- run: cmake --install build --prefix build/install
android:
runs-on: ubuntu-22.04
strategy:
matrix:
abi: [ armeabi-v7a, arm64-v8a ]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
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@v5
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@v5
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