mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
This is increasingly difficult to maintain, and has very limited benefit. Modern coprocessors with enough horsepower to run Java applications can use the Gradle or Bazel build systems instead.
64 lines
2.2 KiB
YAML
64 lines
2.2 KiB
YAML
name: Sanitizers
|
|
|
|
on: [pull_request, push]
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
SCCACHE_WEBDAV_ENDPOINT: "https://frcmaven.wpi.edu/artifactory/wpilib-generic-cache-cmake-local"
|
|
SCCACHE_WEBDAV_KEY_PREFIX: "sccache"
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- name: asan
|
|
cmake-flags: "-DCMAKE_BUILD_TYPE=Asan"
|
|
ctest-env: ""
|
|
ctest-flags: ""
|
|
- name: tsan
|
|
cmake-flags: "-DCMAKE_BUILD_TYPE=Tsan"
|
|
ctest-env: "TSAN_OPTIONS=second_deadlock_stack=1:suppressions=$GITHUB_WORKSPACE/tsan_suppressions.txt"
|
|
ctest-flags: "-E 'cscore|cameraserver'"
|
|
- name: ubsan
|
|
cmake-flags: "-DCMAKE_BUILD_TYPE=Ubsan"
|
|
ctest-env: ""
|
|
ctest-flags: ""
|
|
name: "${{ matrix.name }}"
|
|
runs-on: ubuntu-24.04
|
|
container: wpilib/roborio-cross-ubuntu:2025-24.04
|
|
steps:
|
|
- name: Install Dependencies
|
|
run: sudo apt-get update && sudo apt-get install -y libopencv-dev clang-18 ninja-build avahi-daemon
|
|
|
|
- name: Install sccache
|
|
uses: mozilla-actions/sccache-action@v0.0.10
|
|
|
|
- uses: actions/checkout@v6
|
|
|
|
- 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-18 -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/clang++-18 ${{ matrix.cmake-flags }} ..
|
|
env:
|
|
SCCACHE_WEBDAV_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
|
|
SCCACHE_WEBDAV_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
|
|
|
|
- name: Setup avahi-daemon
|
|
run: |
|
|
sudo service dbus start
|
|
sudo avahi-daemon -D
|
|
|
|
- name: build
|
|
working-directory: build
|
|
run: cmake --build . --parallel $(nproc)
|
|
env:
|
|
SCCACHE_WEBDAV_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
|
|
SCCACHE_WEBDAV_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
|
|
|
|
- name: test
|
|
working-directory: build
|
|
run: ${{ matrix.ctest-env }} ctest --output-on-failure ${{ matrix.ctest-flags }}
|