From 85ffdd963640fb0ee48a9a29042e6f3cb723c7fd Mon Sep 17 00:00:00 2001 From: Christian Mazakas Date: Thu, 19 Dec 2024 08:38:49 -0800 Subject: [PATCH] update ci to include ubsan and asan --- .github/workflows/ci.yml | 54 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 32eb2d4e..84ab6bbc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,10 @@ on: pull_request: release: types: [published, created, edited] + +env: + UBSAN_OPTIONS: print_stacktrace=1 + jobs: ubuntu-jammy: runs-on: ubuntu-22.04 @@ -60,7 +64,7 @@ jobs: run: ../../../b2 print_config_info toolset=$TOOLSET working-directory: ../boost-root/libs/config/test - name: Test - run: ../../../b2 toolset=$TOOLSET + run: ../../../b2 toolset=$TOOLSET variant=debug,release ${{ startsWith(matrix.compiler, 'g++-13') && 'address-sanitizer=norecover undefined-sanitizer=norecover' || '' }} working-directory: ../boost-root/libs/regex/test ubuntu-jammy-standalone: runs-on: ubuntu-22.04 @@ -170,6 +174,54 @@ jobs: - name: Test run: CXX=clang++-18 LIBRARIES="-licuuc -licudata -licui18n" ./test_clang.sh working-directory: ../boost-root/libs/regex/test/module + ubuntu-noble-clang: + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + compiler: [ clang++-16, clang++-17, clang++-18 ] + standard: [ c++11, c++14, c++17, c++20 ] + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: '0' + - uses: mstachniuk/ci-skip@v1 + with: + commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]' + commit-filter-separator: ';' + fail-fast: true + - name: Set TOOLSET + run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV + - name: Add repository + run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" + - name: Install packages + run: sudo apt install clang-16 clang-17 clang-18 + - name: Checkout main boost + run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root + - name: Update tools/boostdep + run: git submodule update --init tools/boostdep + working-directory: ../boost-root + - name: Copy files + run: cp -r $GITHUB_WORKSPACE/* libs/regex + working-directory: ../boost-root + - name: Install deps + run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex + working-directory: ../boost-root + - name: Bootstrap + run: ./bootstrap.sh + working-directory: ../boost-root + - name: Generate headers + run: ./b2 headers + working-directory: ../boost-root + - name: Generate user config + run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} : -std=${{ matrix.standard }} ;" > ~/user-config.jam' + working-directory: ../boost-root + - name: Config info + run: ../../../b2 print_config_info toolset=$TOOLSET + working-directory: ../boost-root/libs/config/test + - name: Test + run: ../../../b2 toolset=$TOOLSET define=CI_SUPPRESS_KNOWN_ISSUES define=SLOW_COMPILER variant=debug,release ${{ startsWith(matrix.compiler, 'clang++-18') && 'address-sanitizer=norecover undefined-sanitizer=norecover' || '' }} + working-directory: ../boost-root/libs/regex/test macos: runs-on: macos-latest strategy: