Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
path: root/.github/workflows/mac-builds.yml
blob: c115bf00fea67e159847b4d4199e377a9d76da50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
name: Mac Builds

# macOS runners are few and shared by every Progmasoft repository, so macOS
# gets one job, as in the Tala compiler: the newest macOS on Apple Silicon,
# with AddressSanitizer and UndefinedBehaviorSanitizer. The other build
# systems, the C++ standards and ThreadSanitizer run on Linux and Windows.

on:
  push:
    branches: [devel]
  pull_request:

permissions:
  contents: read

env:
  CTEST_OUTPUT_ON_FAILURE: 1
  CTEST_NO_TESTS_ACTION: error

jobs:
  build:
    name: macOS 26, C++17, AddressSanitizer and UBSan
    runs-on: macos-26
    timeout-minutes: 60

    steps:
    - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
      with:
        persist-credentials: false

    - name: Configure with the sanitizers
      env:
        CXXFLAGS: -fsanitize=address,undefined
        LDFLAGS: -fsanitize=address,undefined
      run: |
        cmake --preset most-tests -GNinja \
              -DCMAKE_BUILD_TYPE=Debug \
              -DCMAKE_CXX_STANDARD=17 \
              -DCATCH3_BUILD_EXAMPLES=ON \
              -DCATCH3_BUILD_EXTRA_TESTS=ON

    - name: Build
      run: cmake --build build

    - name: Test
      run: ctest --test-dir build -j