\fix: resolve Sphinx documentation build issues\n\n- Replace deprecat… #2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Tests | |
| on: | |
| push: | |
| branches: [ main, develop ] | |
| paths: | |
| - 'include/**' | |
| - 'test/**' | |
| - 'examples/**' | |
| - 'xmake.lua' | |
| - '.github/workflows/tests.yml' | |
| pull_request: | |
| branches: [ main ] | |
| paths: | |
| - 'include/**' | |
| - 'test/**' | |
| - 'examples/**' | |
| - 'xmake.lua' | |
| - '.github/workflows/tests.yml' | |
| jobs: | |
| test-linux: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| compiler: [gcc, clang] | |
| include: | |
| - compiler: gcc | |
| cc: gcc-11 | |
| cxx: g++-11 | |
| - compiler: clang | |
| cc: clang-13 | |
| cxx: clang++-13 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential cmake | |
| sudo apt-get install -y gcc-11 g++-11 clang-13 clang++-13 | |
| sudo apt-get install -y libeigen3-dev | |
| - name: Install xmake | |
| run: | | |
| curl -fsSL https://xmake.io/shget.text | bash | |
| echo "$HOME/.local/bin" >> $GITHUB_PATH | |
| - name: Configure xmake | |
| run: | | |
| xmake config --toolchain=${{ matrix.compiler }} --cc=${{ matrix.cc }} --cxx=${{ matrix.cxx }} | |
| - name: Build tests | |
| run: | | |
| xmake build -g tests | |
| xmake build -g integration_tests | |
| - name: Run unit tests | |
| run: | | |
| xmake run test_state_concept | |
| xmake run test_rk4_integrator | |
| xmake run test_advanced_integrators | |
| xmake run test_dop853 | |
| - name: Run integration tests | |
| run: | | |
| xmake run test_sde_solvers | |
| xmake run test_sde_integration | |
| xmake run test_modernized_interface | |
| xmake run test_standard_parallelism | |
| - name: Run comprehensive test suite | |
| run: | | |
| xmake test-all --verbose | |
| test-windows: | |
| runs-on: windows-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup MSVC | |
| uses: ilammy/msvc-dev-cmd@v1 | |
| - name: Install xmake | |
| run: | | |
| # Try chocolatey first, then fallback to official installer | |
| try { | |
| choco install xmake -y | |
| } catch { | |
| Write-Host "Chocolatey installation failed, trying official installer..." | |
| Invoke-Expression (Invoke-Webrequest 'https://xmake.io/psget.text' -UseBasicParsing).Content | |
| $env:PATH = "$env:USERPROFILE\.local\bin;$env:PATH" | |
| echo "$env:USERPROFILE\.local\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
| } | |
| - name: Verify xmake installation | |
| run: | | |
| xmake --version | |
| - name: Configure xmake | |
| run: | | |
| xmake config --toolchain=msvc --arch=x64 | |
| - name: Build tests | |
| run: | | |
| xmake build -g tests | |
| xmake build -g integration_tests | |
| - name: Run unit tests | |
| run: | | |
| xmake run test_state_concept | |
| xmake run test_rk4_integrator | |
| xmake run test_advanced_integrators | |
| xmake run test_dop853 | |
| - name: Run integration tests | |
| run: | | |
| xmake run test_sde_solvers | |
| xmake run test_sde_integration | |
| xmake run test_modernized_interface | |
| xmake run test_standard_parallelism | |
| - name: Run comprehensive test suite | |
| run: | | |
| xmake test-all --verbose | |
| test-macos: | |
| runs-on: macos-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install system dependencies | |
| run: | | |
| brew install eigen | |
| - name: Install xmake | |
| run: | | |
| curl -fsSL https://xmake.io/shget.text | bash | |
| echo "$HOME/.local/bin" >> $GITHUB_PATH | |
| - name: Configure xmake | |
| run: | | |
| xmake config --toolchain=clang | |
| - name: Build tests | |
| run: | | |
| xmake build -g tests | |
| xmake build -g integration_tests | |
| - name: Run unit tests | |
| run: | | |
| xmake run test_state_concept | |
| xmake run test_rk4_integrator | |
| xmake run test_advanced_integrators | |
| xmake run test_dop853 | |
| - name: Run integration tests | |
| run: | | |
| xmake run test_sde_solvers | |
| xmake run test_sde_integration | |
| xmake run test_modernized_interface | |
| xmake run test_standard_parallelism | |
| - name: Run comprehensive test suite | |
| run: | | |
| xmake test-all --verbose | |
| test-examples: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential cmake | |
| sudo apt-get install -y gcc-11 g++-11 | |
| sudo apt-get install -y libeigen3-dev | |
| - name: Install xmake | |
| run: | | |
| curl -fsSL https://xmake.io/shget.text | bash | |
| echo "$HOME/.local/bin" >> $GITHUB_PATH | |
| - name: Configure xmake | |
| run: | | |
| xmake config --toolchain=gcc --cc=gcc-11 --cxx=g++-11 | |
| - name: Build examples | |
| run: | | |
| xmake build -g examples | |
| - name: Run examples | |
| run: | | |
| xmake run basic_ode_example | |
| xmake run lorenz_system_example | |
| xmake run parallel_integration_example | |
| xmake run sde_example | |
| xmake run state_concept_example | |
| xmake run signal_aware_example | |
| xmake run async_integration_example | |
| xmake run modernized_interface_example | |
| xmake run standard_parallelism_example | |
| performance-test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential cmake | |
| sudo apt-get install -y gcc-11 g++-11 | |
| sudo apt-get install -y libeigen3-dev | |
| - name: Install xmake | |
| run: | | |
| curl -fsSL https://xmake.io/shget.text | bash | |
| echo "$HOME/.local/bin" >> $GITHUB_PATH | |
| - name: Configure xmake for performance | |
| run: | | |
| xmake config --toolchain=gcc --cc=gcc-11 --cxx=g++-11 --mode=release | |
| - name: Build performance tests | |
| run: | | |
| xmake build -g performance_tests | |
| - name: Run performance benchmarks | |
| run: | | |
| xmake run performance_benchmark | |
| - name: Upload performance results | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: performance-results | |
| path: performance_results.txt | |
| retention-days: 30 | |
| test-coverage: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential cmake | |
| sudo apt-get install -y gcc-11 g++-11 | |
| sudo apt-get install -y libeigen3-dev | |
| sudo apt-get install -y lcov | |
| - name: Install xmake | |
| run: | | |
| curl -fsSL https://xmake.io/shget.text | bash | |
| echo "$HOME/.local/bin" >> $GITHUB_PATH | |
| - name: Configure xmake with coverage | |
| run: | | |
| xmake config --toolchain=gcc --cc=gcc-11 --cxx=g++-11 --mode=debug | |
| xmake config --enable_coverage=true | |
| - name: Build and run tests with coverage | |
| run: | | |
| xmake build -g tests | |
| xmake build -g integration_tests | |
| xmake test-all --coverage | |
| - name: Generate coverage report | |
| run: | | |
| lcov --capture --directory . --output-file coverage.info | |
| lcov --remove coverage.info '/usr/*' --output-file coverage.info | |
| lcov --remove coverage.info '*/test/*' --output-file coverage.info | |
| lcov --list coverage.info | |
| - name: Upload coverage reports | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: coverage-report | |
| path: coverage.info | |
| retention-days: 30 |