Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
316246a
Add macOS and Windows Clang presets for improved cross-platform support
prachya-saechua-cpaxtra Feb 19, 2026
75f42ef
Fix narrow method call in ResponseCorrelatorTest to use reference for…
prachya-saechua-cpaxtra Feb 19, 2026
fc89f5e
Fix include directive for sys/sysctl.h on macOS
prachya-saechua-cpaxtra Feb 19, 2026
846481d
Fix NullPointerException test assertions in StringTest
prachya-saechua-cpaxtra Feb 19, 2026
ffca2e7
Refactor getBrokerURL method to override in OpenWireMessageListenerRe…
prachya-saechua-cpaxtra Feb 19, 2026
89e872e
Enhance test classes to override getBrokerURL method
blackb1rd Feb 19, 2026
371b784
Update README.md for SSL integration tests and remove outdated docume…
blackb1rd Feb 19, 2026
921fa00
Update README.md to enhance Table of Contents with additional section…
blackb1rd Feb 19, 2026
a5be575
Remove outdated macOS build configurations from CI workflow
prachya-saechua-cpaxtra Feb 19, 2026
e9d8364
Enhance ArrayPointer with type-correct deleters for derived-to-base o…
blackb1rd Feb 19, 2026
516d3c9
Add Linux GCC build, unit test, benchmark, and integration jobs to CI…
blackb1rd Feb 19, 2026
770c400
Refactor tests to use anonymous namespaces and improve response handl…
blackb1rd Feb 19, 2026
111d545
Add CI workflows for macOS and Windows
blackb1rd Feb 20, 2026
0785c08
Refactor FailoverTransport to improve reconnect handling and reduce s…
blackb1rd Feb 20, 2026
b578ca5
Improve BackupTransportPool and InactivityMonitor error handling to p…
blackb1rd Feb 20, 2026
22bbab3
Enhance memory management in CompositeTaskRunner and TcpSocket by usi…
blackb1rd Feb 20, 2026
386c218
Update SecureRandomImpl to use BCryptGenRandom for improved cryptogra…
blackb1rd Feb 20, 2026
727c117
Increase sleep duration in TimerTest for improved reliability in macO…
blackb1rd Feb 20, 2026
634567c
Update ReentrantReadWriteLockTest to use LONG_DELAY_MS for improved t…
blackb1rd Feb 20, 2026
a617f5c
Increase sleep duration in TimerTest for improved reliability in macO…
blackb1rd Feb 21, 2026
534c850
Refactor Gate class to use shared_ptr for CountDownLatch, improving m…
blackb1rd Feb 21, 2026
542096d
Increase sleep duration in TimerTest for improved reliability in macO…
blackb1rd Feb 21, 2026
254da9c
Merge branch 'main' into compiler_clang
blackb1rd Feb 22, 2026
8e9ed26
Increase sleep duration in SchedulerTest for improved test reliability
blackb1rd Feb 22, 2026
df41703
Increase sleep duration in SchedulerTest for improved test reliability
blackb1rd Feb 22, 2026
a3fa4ce
Increase wait duration in TimerTest for improved test reliability
blackb1rd Feb 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
348 changes: 34 additions & 314 deletions .github/workflows/ci.yml → .github/workflows/ci-linux-clang.yml

Large diffs are not rendered by default.

485 changes: 485 additions & 0 deletions .github/workflows/ci-linux-gcc.yml

Large diffs are not rendered by default.

267 changes: 267 additions & 0 deletions .github/workflows/ci-macos.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,267 @@
name: CI macOS

on:
push:
branches: [ main ]
paths-ignore:
- '**.md'
- 'docs/**'
- '.gitignore'
- 'LICENSE'
pull_request:
branches: [ main ]
paths-ignore:
- '**.md'
- 'docs/**'
- '.gitignore'
- 'LICENSE'
workflow_dispatch:

jobs:
# macOS build job (builds and uploads artifacts for test jobs)
macos-build-test:
name: macOS Build (Test)
runs-on: ${{ matrix.config.runner }}

env:
VCPKG_BINARY_SOURCES: "clear;files,${{ github.workspace }}/.cache/vcpkg/archives,readwrite"

strategy:
fail-fast: false
matrix:
config:
- { runner: macos-latest, preset: arm64-osx-debug-test, arch: arm64, build_type: Debug, ssl: true }
- { runner: macos-latest, preset: arm64-osx-release-test, arch: arm64, build_type: Release, ssl: true }
- { runner: macos-latest, preset: arm64-osx-debug-no-ssl-test, arch: arm64, build_type: Debug, ssl: false }
- { runner: macos-latest, preset: arm64-osx-release-no-ssl-test, arch: arm64, build_type: Release, ssl: false }

steps:
- name: Checkout code
uses: actions/checkout@v6

- name: Install system dependencies
run: brew install ninja

- name: Set VCPKG_ROOT environment variable
run: echo "VCPKG_ROOT=$VCPKG_INSTALLATION_ROOT" >> $GITHUB_ENV

- name: Setup sccache
uses: mozilla-actions/sccache-action@v0.0.9

- name: Create vcpkg binary cache directory
run: mkdir -p "${{ github.workspace }}/.cache/vcpkg/archives"

- name: Cache vcpkg binary packages
uses: actions/cache@v5
with:
path: ${{ github.workspace }}/.cache/vcpkg/archives
key: vcpkg-binary-${{ runner.os }}-${{ matrix.config.arch }}-${{ hashFiles('vcpkg.json') }}
restore-keys: |
vcpkg-binary-${{ runner.os }}-${{ matrix.config.arch }}-

- name: Configure CMake
run: cmake --preset ${{ matrix.config.preset }}
env:
SCCACHE_GHA_ENABLED: "true"

- name: Build
run: cmake --build --preset ${{ matrix.config.preset }} -j $(nproc 2>/dev/null || sysctl -n hw.logicalcpu)
env:
SCCACHE_GHA_ENABLED: "true"

- name: Install
run: cmake --install output/build/${{ matrix.config.preset }} --prefix output/install/${{ matrix.config.preset }}

- name: Upload build artifacts
uses: actions/upload-artifact@v6
with:
name: macos-build-${{ matrix.config.preset }}
path: |
output/build/${{ matrix.config.preset }}/bin/
output/build/${{ matrix.config.preset }}/lib/
retention-days: 1

# macOS unit test jobs (run in parallel after build)
macos-unit-test:
name: macOS Unit Test (${{ matrix.config.preset }})
runs-on: ${{ matrix.config.runner }}
needs: macos-build-test

env:
VCPKG_BINARY_SOURCES: "clear;files,${{ github.workspace }}/.cache/vcpkg/archives,read"

strategy:
fail-fast: false
matrix:
config:
- { runner: macos-latest, preset: arm64-osx-debug-test, arch: arm64, build_type: Debug, ssl: true }
- { runner: macos-latest, preset: arm64-osx-release-test, arch: arm64, build_type: Release, ssl: true }
- { runner: macos-latest, preset: arm64-osx-debug-no-ssl-test, arch: arm64, build_type: Debug, ssl: false }
- { runner: macos-latest, preset: arm64-osx-release-no-ssl-test, arch: arm64, build_type: Release, ssl: false }

steps:
- name: Checkout code
uses: actions/checkout@v6

- name: Install system dependencies
run: brew install ninja

- name: Set VCPKG_ROOT environment variable
run: echo "VCPKG_ROOT=$VCPKG_INSTALLATION_ROOT" >> $GITHUB_ENV

- name: Create vcpkg binary cache directory
run: mkdir -p "${{ github.workspace }}/.cache/vcpkg/archives"

- name: Cache vcpkg binary packages
uses: actions/cache@v5
with:
path: ${{ github.workspace }}/.cache/vcpkg/archives
key: vcpkg-binary-${{ runner.os }}-${{ matrix.config.arch }}-${{ hashFiles('vcpkg.json') }}
restore-keys: |
vcpkg-binary-${{ runner.os }}-${{ matrix.config.arch }}-

- name: Configure CMake (for CTest)
run: cmake --preset ${{ matrix.config.preset }}

- name: Download build artifacts
uses: actions/download-artifact@v7
with:
name: macos-build-${{ matrix.config.preset }}
path: output/build/${{ matrix.config.preset }}/

- name: Make test executables runnable
run: chmod +x output/build/${{ matrix.config.preset }}/bin/*

- name: Run unit tests
run: |
ctest --preset ${{ matrix.config.preset }} \
-L unit -j $(nproc 2>/dev/null || sysctl -n hw.logicalcpu) --output-on-failure --timeout 300

- name: Upload test results
if: failure()
uses: actions/upload-artifact@v6
with:
name: test-results-${{ matrix.config.preset }}-unit-${{ strategy.job-index }}
path: |
output/build/${{ matrix.config.preset }}/Testing/Temporary/
output/build/${{ matrix.config.preset }}/**/*.log

# macOS benchmark jobs (run in parallel after build)
macos-benchmark:
name: macOS Benchmark
runs-on: ${{ matrix.config.runner }}
needs: macos-build-test

env:
VCPKG_BINARY_SOURCES: "clear;files,${{ github.workspace }}/.cache/vcpkg/archives,read"

strategy:
fail-fast: false
matrix:
config:
- { runner: macos-latest, preset: arm64-osx-debug-test, arch: arm64, build_type: Debug, ssl: true }
- { runner: macos-latest, preset: arm64-osx-release-test, arch: arm64, build_type: Release, ssl: true }
- { runner: macos-latest, preset: arm64-osx-debug-no-ssl-test, arch: arm64, build_type: Debug, ssl: false }
- { runner: macos-latest, preset: arm64-osx-release-no-ssl-test, arch: arm64, build_type: Release, ssl: false }

steps:
- name: Checkout code
uses: actions/checkout@v6

- name: Install system dependencies
run: brew install ninja

- name: Set VCPKG_ROOT environment variable
run: echo "VCPKG_ROOT=$VCPKG_INSTALLATION_ROOT" >> $GITHUB_ENV

- name: Create vcpkg binary cache directory
run: mkdir -p "${{ github.workspace }}/.cache/vcpkg/archives"

- name: Cache vcpkg binary packages
uses: actions/cache@v5
with:
path: ${{ github.workspace }}/.cache/vcpkg/archives
key: vcpkg-binary-${{ runner.os }}-${{ matrix.config.arch }}-${{ hashFiles('vcpkg.json') }}
restore-keys: |
vcpkg-binary-${{ runner.os }}-${{ matrix.config.arch }}-

- name: Configure CMake (for CTest)
run: cmake --preset ${{ matrix.config.preset }}

- name: Download build artifacts
uses: actions/download-artifact@v7
with:
name: macos-build-${{ matrix.config.preset }}
path: output/build/${{ matrix.config.preset }}/

- name: Make test executables runnable
run: chmod +x output/build/${{ matrix.config.preset }}/bin/*

- name: Run benchmarks
run: ctest --preset ${{ matrix.config.preset }} -L ^benchmark$ --output-on-failure --timeout 600

- name: Upload test results
if: failure()
uses: actions/upload-artifact@v6
with:
name: test-results-${{ matrix.config.preset }}-benchmark
path: |
output/build/${{ matrix.config.preset }}/Testing/Temporary/
output/build/${{ matrix.config.preset }}/**/*.log

# macOS builds without tests (all variants)
macos-build:
name: macOS Build
runs-on: ${{ matrix.config.runner }}

env:
VCPKG_BINARY_SOURCES: "clear;files,${{ github.workspace }}/.cache/vcpkg/archives,readwrite"

strategy:
fail-fast: false
matrix:
config:
# Apple Silicon arm64 builds
- { runner: macos-latest, preset: arm64-osx-debug, arch: arm64 }
- { runner: macos-latest, preset: arm64-osx-release, arch: arm64 }
- { runner: macos-latest, preset: arm64-osx-debug-static, arch: arm64 }
- { runner: macos-latest, preset: arm64-osx-release-static, arch: arm64 }
- { runner: macos-latest, preset: arm64-osx-debug-no-ssl, arch: arm64 }
- { runner: macos-latest, preset: arm64-osx-release-no-ssl, arch: arm64 }

steps:
- name: Checkout code
uses: actions/checkout@v6

- name: Install system dependencies
run: brew install ninja

- name: Set VCPKG_ROOT environment variable
run: echo "VCPKG_ROOT=$VCPKG_INSTALLATION_ROOT" >> $GITHUB_ENV

- name: Setup sccache
uses: mozilla-actions/sccache-action@v0.0.9

- name: Create vcpkg binary cache directory
run: mkdir -p "${{ github.workspace }}/.cache/vcpkg/archives"

- name: Cache vcpkg binary packages
uses: actions/cache@v5
with:
path: ${{ github.workspace }}/.cache/vcpkg/archives
key: vcpkg-binary-${{ runner.os }}-${{ matrix.config.arch }}-${{ hashFiles('vcpkg.json') }}
restore-keys: |
vcpkg-binary-${{ runner.os }}-${{ matrix.config.arch }}-

- name: Configure CMake
run: cmake --preset ${{ matrix.config.preset }}
env:
SCCACHE_GHA_ENABLED: "true"

- name: Build
run: cmake --build --preset ${{ matrix.config.preset }} -j $(nproc 2>/dev/null || sysctl -n hw.logicalcpu)
env:
SCCACHE_GHA_ENABLED: "true"

- name: Install
run: cmake --install output/build/${{ matrix.config.preset }} --prefix output/install/${{ matrix.config.preset }}
Loading
Loading