Skip to content
Closed
Changes from all commits
Commits
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
36 changes: 29 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@ jobs:
fetch-depth: 1
token: ${{ secrets.GITHUB_TOKEN }}

# Dependencies are cloned from HEAD of each repo's default branch.
# If a dependency has test failures, they must be fixed upstream first.
# To debug: check the "Log dependency versions" step for exact commits used.
- name: Checkout dependencies (Unix)
if: runner.os != 'Windows'
run: |
Expand All @@ -68,6 +71,25 @@ jobs:
git clone --depth 1 https://github.com/kcenon/network_system.git
git clone --depth 1 https://github.com/kcenon/monitoring_system.git

- name: Log dependency versions (Unix)
if: runner.os != 'Windows'
run: |
echo "=== Dependency commits cloned for this CI run ==="
for dep in common_system thread_system logger_system container_system network_system monitoring_system; do
commit=$(git -C "../$dep" rev-parse HEAD)
echo "$dep: $commit"
done

- name: Log dependency versions (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
Write-Host "=== Dependency commits cloned for this CI run ==="
foreach ($dep in @("common_system","thread_system","logger_system","container_system","network_system","monitoring_system")) {
$commit = git -C "../$dep" rev-parse HEAD
Write-Host "${dep}: $commit"
}

- name: Install dependencies (Ubuntu)
if: runner.os == 'Linux'
run: |
Expand Down Expand Up @@ -237,21 +259,22 @@ jobs:
# These tests pass on macOS and Windows but have issues on Linux
if [ "$RUNNER_OS" = "Linux" ]; then
ctest --output-on-failure --timeout 120 \
-E "TaskLifecycleTest|WorkerScenariosTest|FailureRecoveryTest|SchedulingTest|ConcurrentLoadTest" \
|| echo "Some tests failed"
-E "TaskLifecycleTest|WorkerScenariosTest|FailureRecoveryTest|SchedulingTest|ConcurrentLoadTest"
else
ctest --output-on-failure --timeout 120 || echo "Some tests failed"
ctest --output-on-failure --timeout 120
fi

- name: Run tests (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
cd build
# Run tests with timeout and parallel execution
# Exclude test_request_reply due to known flaky behavior on Windows
ctest -C $env:BUILD_TYPE --output-on-failure --timeout 120 --parallel 4 -E "test_request_reply"
if ($LASTEXITCODE -ne 0) { Write-Host "Some tests failed" }
if ($LASTEXITCODE -ne 0) {
Write-Host "::error::Some tests failed on Windows"
exit $LASTEXITCODE
}

- name: Upload test results
if: always()
Expand Down Expand Up @@ -338,8 +361,7 @@ jobs:
run: |
cd build
ctest --output-on-failure --timeout 120 \
-E "TaskLifecycleTest|WorkerScenariosTest|FailureRecoveryTest|SchedulingTest|ConcurrentLoadTest" \
|| echo "Some tests failed"
-E "TaskLifecycleTest|WorkerScenariosTest|FailureRecoveryTest|SchedulingTest|ConcurrentLoadTest"

# Sanitizer testing disabled temporarily due to fmt dependency issues
# Will be re-enabled once thread_system fmt dependency is resolved
Loading