Skip to content

Commit 817a1fc

Browse files
committed
Fix soak CI: parallel with smoke, all platforms, ASan on macOS
- soak-quick + soak-asan now need build-* (not smoke-*) — parallel - Added macOS Intel (amd64) to both soak-quick and soak-asan matrices - Added macOS arm64 + Intel to soak-asan (was Linux-only) - Windows soak: separate job (matrix.shell not supported) - ASan not on Windows (LeakSanitizer unsupported there)
1 parent 4a49097 commit 817a1fc

File tree

2 files changed

+53
-10
lines changed

2 files changed

+53
-10
lines changed

.github/workflows/dry-run.yml

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,11 @@ jobs:
534534
goarch: arm64
535535
cc: cc
536536
cxx: c++
537+
- os: macos-15-intel
538+
goos: darwin
539+
goarch: amd64
540+
cc: cc
541+
cxx: c++
537542
steps:
538543
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
539544

@@ -593,28 +598,44 @@ jobs:
593598

594599
soak-asan:
595600
if: ${{ inputs.soak_level == 'full' && !inputs.skip_builds }}
596-
needs: [smoke-unix]
601+
needs: [build-unix]
597602
runs-on: ${{ matrix.os }}
598603
timeout-minutes: 45
599604
strategy:
600605
fail-fast: false
601606
matrix:
602607
include:
603608
- os: ubuntu-latest
609+
goos: linux
604610
goarch: amd64
611+
cc: gcc
612+
cxx: g++
605613
- os: ubuntu-24.04-arm
614+
goos: linux
615+
goarch: arm64
616+
cc: gcc
617+
cxx: g++
618+
- os: macos-14
619+
goos: darwin
606620
goarch: arm64
621+
cc: cc
622+
cxx: c++
623+
- os: macos-15-intel
624+
goos: darwin
625+
goarch: amd64
626+
cc: cc
627+
cxx: c++
607628
steps:
608629
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
609630

610-
- name: Install deps
631+
- name: Install deps (Linux)
632+
if: startsWith(matrix.os, 'ubuntu')
611633
run: sudo apt-get update && sudo apt-get install -y zlib1g-dev python3 git
612634

613635
- name: Build (ASan + LeakSanitizer)
614636
run: |
615-
# Build production binary WITH ASan for leak detection at exit
616-
SANITIZE="-fsanitize=address,undefined -fno-omit-frame-pointer" \
617-
scripts/build.sh CC=gcc CXX=g++ EXTRA_CFLAGS="$SANITIZE" EXTRA_LDFLAGS="$SANITIZE"
637+
SANITIZE="-fsanitize=address,undefined -fno-omit-frame-pointer"
638+
scripts/build.sh CC=${{ matrix.cc }} CXX=${{ matrix.cxx }} EXTRA_CFLAGS="$SANITIZE" EXTRA_LDFLAGS="$SANITIZE"
618639
619640
- name: ASan soak (15 min)
620641
env:
@@ -625,6 +646,6 @@ jobs:
625646
if: always()
626647
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
627648
with:
628-
name: soak-asan-linux-${{ matrix.goarch }}
649+
name: soak-asan-${{ matrix.goos }}-${{ matrix.goarch }}
629650
path: soak-results/
630651
retention-days: 14

.github/workflows/release.yml

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -535,6 +535,11 @@ jobs:
535535
goarch: arm64
536536
cc: cc
537537
cxx: c++
538+
- os: macos-15-intel
539+
goos: darwin
540+
goarch: amd64
541+
cc: cc
542+
cxx: c++
538543
steps:
539544
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
540545
- name: Install deps (Linux)
@@ -585,7 +590,7 @@ jobs:
585590
path: soak-results/
586591
retention-days: 14
587592

588-
# ── Step 5b: ASan soak (Linux only, parallel) ─────────────────
593+
# ── Step 5b: ASan soak (Linux + macOS, parallel with smoke) ────
589594
soak-asan:
590595
if: ${{ inputs.soak_level == 'full' }}
591596
needs: [build-unix]
@@ -596,17 +601,34 @@ jobs:
596601
matrix:
597602
include:
598603
- os: ubuntu-latest
604+
goos: linux
599605
goarch: amd64
606+
cc: gcc
607+
cxx: g++
600608
- os: ubuntu-24.04-arm
609+
goos: linux
601610
goarch: arm64
611+
cc: gcc
612+
cxx: g++
613+
- os: macos-14
614+
goos: darwin
615+
goarch: arm64
616+
cc: cc
617+
cxx: c++
618+
- os: macos-15-intel
619+
goos: darwin
620+
goarch: amd64
621+
cc: cc
622+
cxx: c++
602623
steps:
603624
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
604-
- name: Install deps
625+
- name: Install deps (Linux)
626+
if: startsWith(matrix.os, 'ubuntu')
605627
run: sudo apt-get update && sudo apt-get install -y zlib1g-dev python3 git
606628
- name: Build (ASan + LeakSanitizer)
607629
run: |
608630
SANITIZE="-fsanitize=address,undefined -fno-omit-frame-pointer"
609-
scripts/build.sh CC=gcc CXX=g++ EXTRA_CFLAGS="$SANITIZE" EXTRA_LDFLAGS="$SANITIZE"
631+
scripts/build.sh --version ${{ inputs.version }} CC=${{ matrix.cc }} CXX=${{ matrix.cxx }} EXTRA_CFLAGS="$SANITIZE" EXTRA_LDFLAGS="$SANITIZE"
610632
- name: ASan soak (15 min)
611633
env:
612634
ASAN_OPTIONS: "detect_leaks=1:halt_on_error=0:log_path=soak-results/asan"
@@ -615,7 +637,7 @@ jobs:
615637
if: always()
616638
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
617639
with:
618-
name: soak-asan-linux-${{ matrix.goarch }}
640+
name: soak-asan-${{ matrix.goos }}-${{ matrix.goarch }}
619641
path: soak-results/
620642
retention-days: 14
621643

0 commit comments

Comments
 (0)