Add a NEWS entry for the next release #11
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Run sanitizer checks | |
on: | |
workflow_dispatch: | |
push: | |
branches: [ master ] | |
paths: | |
- '**.h' | |
- '**.c' | |
pull_request: | |
branches: [ master ] | |
paths: | |
- '**.h' | |
- '**.c' | |
permissions: # added using https://github.com/step-security/secure-workflows | |
contents: read | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
name: Build with ${{ matrix.sanitizer }} sanitizer for ${{ matrix.ucs }} | |
strategy: | |
matrix: | |
ucs: [ucs2, ucs4] | |
sanitizer: [address, leak, undefined] | |
include: | |
- sanitizer: "address" | |
options: "ASAN_OPTIONS=detect_leaks=0" | |
- sanitizer: "leak" | |
options: "LSAN_OPTIONS=fast_unwind_on_malloc=0" | |
- sanitizer: "undefined" | |
options: "UBSAN_OPTIONS=halt_on_error=1" | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1 | |
with: | |
egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Install dependencies | |
run: sudo apt-get update -qq && sudo apt-get install -y libyaml-dev | |
- name: Autogen | |
run: ./autogen.sh | |
- name: Configure | |
run: CFLAGS="-fsanitize=${{ matrix.sanitizer }} -g" ./configure | |
if: matrix.ucs == 'ucs2' | |
- name: Configure with ucs4 | |
run: CFLAGS="-fsanitize=${{ matrix.sanitizer }} -g" ./configure --enable-ucs4 | |
if: matrix.ucs == 'ucs4' | |
- name: Make check | |
run: ${{ matrix.options }} make check | |
- name: Store the test suite log | |
if: ${{ always() }} # store the test suite log even if the tests failed | |
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4 | |
with: | |
name: test-suite-${{ matrix.ucs }}-${{ matrix.sanitizer }}.log | |
path: tests/test-suite.log |