diff --git a/.github/workflows/sanitizers.yml b/.github/workflows/sanitizers.yml new file mode 100644 index 000000000..569c33866 --- /dev/null +++ b/.github/workflows/sanitizers.yml @@ -0,0 +1,60 @@ +name: Sanitizers + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + sanitizers: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [ubuntu-22.04] + sanitizer: [thread, address] + env: + CC: clang + CMAKE_GENERATOR: Ninja + CFLAGS: "-fsanitize=${{ matrix.sanitizer }}" + ASAN_OPTIONS: fast_unwind_on_malloc=0 + + steps: + - uses: actions/checkout@v3 + + - name: install packages + run: | + sudo apt-get update && sudo apt-get install -y ninja-build + + - name: make info + run: | + echo "OS: ${{ matrix.os }}" + clang - --version + + - name: cmake + run: | + cmake -B build -DHAVE_THREADS= && cmake --build build + cat build/compile_commands.json + + - uses: sreimers/pr-dependency-action@v0.5 + with: + name: rem + repo: https://github.com/baresip/rem + secret: ${{ secrets.GITHUB_TOKEN }} + working-directory: '../.' + + - uses: sreimers/pr-dependency-action@v0.5 + with: + name: retest + repo: https://github.com/baresip/retest.git + secret: ${{ secrets.GITHUB_TOKEN }} + working-directory: '../.' + + - name: retest + run: | + cd .. + cmake -S rem -B rem/build && cmake --build rem/build + cd retest && make && ./retest -riv