mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
Bump webfactory/ssh-agent to 0.9.0 (Node 20) Switch to gradle/actions/wrapper-validation (Node 20) Bump mozilla-actions/sccache-action to 0.0.5 (Node 20 for sanitizers only) Bump actions/github-script to 7 (Node 20 for documentation only) Bump wpilibsuite/import-signing-certificate to 2 (Node 20) Bump JamesIves/github-pages-deploy-action to 4.6.1 (Node 20)
53 lines
1.7 KiB
YAML
53 lines
1.7 KiB
YAML
name: Sanitizers
|
|
|
|
on: [pull_request, push]
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- name: asan
|
|
cmake-flags: "-DCMAKE_BUILD_TYPE=Asan"
|
|
ctest-env: ""
|
|
ctest-flags: "-E 'wpilibc'"
|
|
- name: tsan
|
|
cmake-flags: "-DCMAKE_BUILD_TYPE=Tsan"
|
|
ctest-env: "TSAN_OPTIONS=second_deadlock_stack=1"
|
|
ctest-flags: "-E 'cscore|cameraserver|wpilibc|wpilibNewCommands'"
|
|
- name: ubsan
|
|
cmake-flags: "-DCMAKE_BUILD_TYPE=Ubsan"
|
|
ctest-env: ""
|
|
ctest-flags: ""
|
|
name: "${{ matrix.name }}"
|
|
runs-on: ubuntu-22.04
|
|
container: wpilib/roborio-cross-ubuntu:2024-22.04
|
|
steps:
|
|
- name: Install Dependencies
|
|
run: sudo apt-get update && sudo apt-get install -y libopencv-dev libopencv4.5-java clang-14 libprotobuf-dev protobuf-compiler ninja-build
|
|
|
|
- name: Run sccache-cache
|
|
uses: mozilla-actions/sccache-action@v0.0.5
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: configure
|
|
run: mkdir build && cd build && cmake -G Ninja -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/clang-14 -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/clang++-14 -DWITH_JAVA=OFF ${{ matrix.cmake-flags }} ..
|
|
env:
|
|
SCCACHE_GHA_ENABLED: "true"
|
|
|
|
- name: build
|
|
working-directory: build
|
|
run: cmake --build . --parallel $(nproc)
|
|
env:
|
|
SCCACHE_GHA_ENABLED: "true"
|
|
|
|
- name: test
|
|
working-directory: build
|
|
run: ${{ matrix.ctest-env }} ctest --output-on-failure ${{ matrix.ctest-flags }}
|