1+ ---
12name : Continuous Integration
23
3- on :
4+ " on " :
45 push :
56 branches : [main, develop]
67 pull_request :
@@ -114,6 +115,12 @@ jobs:
114115 build_preset : release-vs
115116 triplet : x64-windows
116117 arch : x64
118+ - name : " Windows x64 RelWithDebInfo"
119+ os : windows-latest
120+ preset : relwithdebinfo-vs
121+ build_preset : relwithdebinfo-vs
122+ triplet : x64-windows
123+ arch : x64
117124
118125 # macOS Intel builds
119126 - name : " macOS x64 Debug"
@@ -128,6 +135,12 @@ jobs:
128135 build_preset : release
129136 triplet : x64-osx
130137 arch : x64
138+ - name : " macOS x64 RelWithDebInfo"
139+ os : macos-13
140+ preset : relwithdebinfo
141+ build_preset : relwithdebinfo
142+ triplet : x64-osx
143+ arch : x64
131144
132145 # macOS Apple Silicon builds
133146 - name : " macOS ARM64 Debug"
@@ -175,7 +188,9 @@ jobs:
175188 uses : actions/cache@v4
176189 with :
177190 path : build
178- key : ${{ runner.os }}-${{ matrix.arch }}-cmake-${{ matrix.preset }}-${{ hashFiles('CMakeLists.txt', 'cmake/**') }}
191+ key : >-
192+ ${{ runner.os }}-${{ matrix.arch }}-cmake-${{ matrix.preset }}-
193+ ${{ hashFiles('CMakeLists.txt', 'cmake/**') }}
179194 restore-keys : |
180195 ${{ runner.os }}-${{ matrix.arch }}-cmake-${{ matrix.preset }}-
181196
@@ -211,6 +226,7 @@ jobs:
211226 run : |
212227 cmake --preset ${{ matrix.preset }} \
213228 -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake \
229+ -DUSE_VCPKG=ON \
214230 -DVCPKG_TARGET_TRIPLET=${{ matrix.triplet }} \
215231 -DATOM_BUILD_EXAMPLES=ON \
216232 -DATOM_BUILD_TESTS=ON \
@@ -228,7 +244,8 @@ jobs:
228244 # Run unified test runner with comprehensive output
229245 if [ -f "./run_all_tests" ] || [ -f "./run_all_tests.exe" ]; then
230246 echo "=== Running Unified Test Suite ==="
231- ./run_all_tests --verbose --parallel --threads=4 --output-format=json --output=test_results.json || echo "Some tests failed"
247+ ./run_all_tests --verbose --parallel --threads=4 \
248+ --output-format=json --output=test_results.json || echo "Some tests failed"
232249 else
233250 echo "=== Unified test runner not found, falling back to CTest ==="
234251 ctest --output-on-failure --parallel --timeout 300
@@ -261,7 +278,7 @@ jobs:
261278 run : |
262279 cd build
263280 echo "=== CTest Validation ==="
264- ctest --output-on-failure --parallel --timeout 300 --test-dir build || echo "CTest validation completed"
281+ ctest --output-on-failure --parallel --timeout 300 || echo "CTest validation completed"
265282
266283 - name : Show ccache stats (Linux/macOS)
267284 if : runner.os != 'Windows'
@@ -341,7 +358,8 @@ jobs:
341358 run : |
342359 # Add Python bindings to path and test
343360 export PYTHONPATH=$PWD/build/python:$PYTHONPATH
344- python -c "import atom; print(f'Python bindings loaded successfully with Python {python.__version__}')" || echo "Python bindings not available"
361+ python -c "import atom; print('Python bindings loaded successfully')" \
362+ || echo "Python bindings not available"
345363
346364 # Security scanning
347365 security :
@@ -440,14 +458,20 @@ jobs:
440458 if [ "${{ matrix.type }}" == "category" ]; then
441459 # Run tests by category
442460 echo "Running category: ${{ matrix.filter }}"
443- ./scripts/run_tests.sh --category "${{ matrix.filter }}" --verbose --parallel --threads=4 --output-format=json --output="${{ matrix.filter }}_results.json" --timeout ${{ matrix.timeout }} || echo "Tests in ${{ matrix.name }} completed with issues"
461+ ./scripts/run_tests.sh --category "${{ matrix.filter }}" \
462+ --verbose --parallel --threads=4 \
463+ --output-format=json --output="${{ matrix.filter }}_results.json" \
464+ || echo "Tests in ${{ matrix.name }} completed with issues"
444465 else
445466 # Run tests by modules
446467 echo "Running modules: ${{ matrix.modules }}"
447468 IFS=',' read -ra MODULE_ARRAY <<< "${{ matrix.modules }}"
448469 for module in "${MODULE_ARRAY[@]}"; do
449470 echo "=== Testing module: $module ==="
450- ./scripts/run_tests.sh --module "$module" --verbose --parallel --threads=2 --output-format=json --output="module_${module}_results.json" --timeout ${{ matrix.timeout }} || echo "Module $module tests completed with issues"
471+ ./scripts/run_tests.sh --module "$module" \
472+ --verbose --parallel --threads=2 \
473+ --output-format=json --output="module_${module}_results.json" \
474+ || echo "Module $module tests completed with issues"
451475 done
452476 fi
453477
@@ -557,7 +581,9 @@ jobs:
557581 # Try unified test runner for performance tests first
558582 if [ -f "./run_all_tests" ]; then
559583 echo "Running performance tests via unified test runner"
560- ./run_all_tests --category=performance --verbose --output-format=json --output=performance_benchmarks.json || echo "Performance tests completed with issues"
584+ ./run_all_tests --category=performance --verbose \
585+ --output-format=json --output=performance_benchmarks.json \
586+ || echo "Performance tests completed with issues"
561587 else
562588 echo "Unified test runner not found, trying traditional benchmarks"
563589 fi
@@ -576,7 +602,7 @@ jobs:
576602 elif [ -f "traditional_benchmarks.json" ]; then
577603 cp traditional_benchmarks.json benchmark_results.json
578604 else
579- echo '{"benchmarks": [], "context": {"date": "'$(date)'", "host_name": "'$(hostname)'" }}' > benchmark_results.json
605+ echo '{"benchmarks": [], "context": {}}' > benchmark_results.json
580606 fi
581607
582608 - name : Upload benchmark results
@@ -677,7 +703,9 @@ jobs:
677703 echo "" >> $GITHUB_STEP_SUMMARY
678704 echo "## Performance Benchmarks" >> $GITHUB_STEP_SUMMARY
679705 if [ -f "all-test-results/benchmark-results/benchmark_results.json" ]; then
680- benchmark_count=$(jq '.benchmarks | length // 0' "all-test-results/benchmark-results/benchmark_results.json" 2>/dev/null || echo "0")
706+ benchmark_count=$(jq '.benchmarks | length // 0' \
707+ "all-test-results/benchmark-results/benchmark_results.json" \
708+ 2>/dev/null || echo "0")
681709 echo "- **Benchmarks Run**: $benchmark_count" >> $GITHUB_STEP_SUMMARY
682710 echo "- **Status**: ✅ Completed" >> $GITHUB_STEP_SUMMARY
683711 else
@@ -697,7 +725,9 @@ jobs:
697725 # Overall status
698726 echo "" >> $GITHUB_STEP_SUMMARY
699727 echo "## Overall Status" >> $GITHUB_STEP_SUMMARY
700- if [ "${{ needs.comprehensive-tests.result }}" == "success" ] && [ "${{ needs.windows-tests.result }}" == "success" ]; then
728+ comp_result="${{ needs.comprehensive-tests.result }}"
729+ win_result="${{ needs.windows-tests.result }}"
730+ if [ "$comp_result" == "success" ] && [ "$win_result" == "success" ]; then
701731 echo "🎉 **All tests completed successfully!**" >> $GITHUB_STEP_SUMMARY
702732 else
703733 echo "⚠️ **Some tests had issues** - Check individual job results for details" >> $GITHUB_STEP_SUMMARY
0 commit comments