Removed Claude md files. #80
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: | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| tests: | |
| name: 'py${{ matrix.python-version}} on ${{ matrix.os }}' | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-22.04, ubuntu-24.04, macos-15-intel, macos-26] | |
| python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: 'pip' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| # Install public releases from PyPI | |
| # BigPlanet v3.1.2+ includes all compatibility fixes | |
| python -m pip install vplanet vspace bigplanet | |
| - name: Install multiplanet | |
| run: | | |
| python -m pip install -e . | |
| - name: Install test dependencies | |
| run: | | |
| python -m pip install pytest pytest-cov pytest-timeout | |
| - name: Run diagnostic test | |
| timeout-minutes: 3 | |
| run: | | |
| # First run a simple unit test to verify pytest works | |
| echo "Running single test as diagnostic..." | |
| python -m pytest tests/Serial/test_serial.py -v -s | |
| - name: Run tests | |
| timeout-minutes: 20 | |
| run: | | |
| # Run all tests with verbose output, per-test timeout, and coverage | |
| # Note: Coverage shows 0% because tests invoke CLI as subprocess (expected for CLI tools) | |
| python -m pytest tests/ -v -s --timeout=300 --junitxml=junit/test-results-${{ matrix.os }}-${{ matrix.python-version }}.xml --cov=multiplanet --cov-report=xml --cov-report=term | |
| - name: Upload coverage to Codecov | |
| # Only upload from one runner to avoid redundant API calls | |
| if: matrix.os == 'ubuntu-22.04' && matrix.python-version == '3.9' | |
| uses: codecov/codecov-action@v4 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| files: ./coverage.xml | |
| flags: ${{ matrix.os }}-py${{ matrix.python-version }} | |
| name: ${{ matrix.os }}-py${{ matrix.python-version }} | |
| fail_ci_if_error: false | |
| - name: Publish test results | |
| uses: EnricoMi/publish-unit-test-result-action@v2 | |
| if: always() && runner.os == 'Linux' | |
| with: | |
| files: junit/test-*.xml | |
| check_name: Test Results (py${{ matrix.python-version }} on ${{ matrix.os }}) | |
| - name: Publish test results (macOS) | |
| uses: EnricoMi/publish-unit-test-result-action/composite@v2 | |
| if: always() && runner.os == 'macOS' | |
| with: | |
| files: junit/test-*.xml | |
| check_name: Test Results (py${{ matrix.python-version }} on ${{ matrix.os }}) |