Files
dl/third/LuaBridge3/.github/workflows/build_ubsan.yml
T
2026-09-16 14:07:40 +08:00

106 lines
3.8 KiB
YAML
Vendored

name: UBSAN
on:
push:
paths:
- "**/workflows/build_ubsan.yml"
- "**/Source/**"
- "**/Tests/**"
- "**/ThirdParty/**"
- "**/CMakeLists.txt"
- "**/.gitmodules"
- "!**/*.md"
- "!**/*.txt"
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
BUILD_TYPE: RelWithDebInfo
jobs:
lua:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
lua:
- { version: "5.1", suffix: "51" }
- { version: "5.2", suffix: "52" }
- { version: "5.3", suffix: "53" }
- { version: "5.4", suffix: "54" }
- { version: "5.5", suffix: "55" }
steps:
- uses: actions/checkout@v6
with:
submodules: true
- name: Install Dependencies
run: sudo apt-get -y install ninja-build
- name: Create Build Environments
run: |
cmake -E make_directory ${{runner.workspace}}/build17
cmake -E make_directory ${{runner.workspace}}/build20
cmake -E make_directory ${{runner.workspace}}/build23
- name: Configure C++17
working-directory: ${{runner.workspace}}/build17
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=17 -DLUABRIDGE_SANITIZE=undefined -G Ninja
- name: Build Lua ${{ matrix.lua.version }} (C++17)
working-directory: ${{runner.workspace}}/build17
run: |
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
LuaBridgeTests${{ matrix.lua.suffix }} \
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
- name: Test Lua ${{ matrix.lua.version }} (C++17)
working-directory: ${{runner.workspace}}/build17
env:
UBSAN_OPTIONS: halt_on_error=1:print_stacktrace=1
run: ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
- name: Configure C++20
working-directory: ${{runner.workspace}}/build20
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=20 -DLUABRIDGE_SANITIZE=undefined -G Ninja
- name: Build Lua ${{ matrix.lua.version }} (C++20)
working-directory: ${{runner.workspace}}/build20
run: |
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
LuaBridgeTests${{ matrix.lua.suffix }} \
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
- name: Test Lua ${{ matrix.lua.version }} (C++20)
working-directory: ${{runner.workspace}}/build20
env:
UBSAN_OPTIONS: halt_on_error=1:print_stacktrace=1
run: ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure
- name: Configure C++23
working-directory: ${{runner.workspace}}/build23
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_STANDARD=23 -DLUABRIDGE_SANITIZE=undefined -G Ninja
- name: Build Lua ${{ matrix.lua.version }} (C++23)
working-directory: ${{runner.workspace}}/build23
run: |
cmake --build . --config $BUILD_TYPE --parallel $(nproc) --target \
LuaBridgeTests${{ matrix.lua.suffix }} \
LuaBridgeTests${{ matrix.lua.suffix }}LuaC \
LuaBridgeTests${{ matrix.lua.suffix }}Noexcept \
LuaBridgeTests${{ matrix.lua.suffix }}LuaCNoexcept
- name: Test Lua ${{ matrix.lua.version }} (C++23)
working-directory: ${{runner.workspace}}/build23
env:
UBSAN_OPTIONS: halt_on_error=1:print_stacktrace=1
run: ctest --parallel $(nproc) -R "LuaBridgeTests${{ matrix.lua.suffix }}" --output-on-failure