ci: stop firing unity-tests/python-tests twice on beta and main pushes #166
Workflow file for this run
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: Python Tests | |
| on: | |
| push: | |
| # Exclude beta and main: those branches re-trigger this workflow via | |
| # workflow_call from beta-release.yml / release.yml. Without the exclusion, | |
| # a push to beta that touches Server/** fires this workflow twice for the | |
| # same SHA, and GitHub auto-cancels the duplicate. | |
| branches-ignore: [beta, main] | |
| paths: | |
| - Server/** | |
| - .github/workflows/python-tests.yml | |
| pull_request: | |
| branches: [main, beta] | |
| paths: | |
| - Server/** | |
| - .github/workflows/python-tests.yml | |
| workflow_dispatch: {} | |
| workflow_call: | |
| inputs: | |
| ref: | |
| description: "Git ref to test (defaults to the triggering ref)." | |
| type: string | |
| required: false | |
| default: "" | |
| jobs: | |
| test: | |
| name: Run Python Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ inputs.ref || github.ref }} | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "latest" | |
| - name: Set up Python | |
| run: uv python install 3.10 | |
| - name: Install dependencies | |
| run: | | |
| cd Server | |
| uv sync | |
| uv pip install -e ".[dev]" | |
| - name: Run tests with coverage | |
| run: | | |
| cd Server | |
| uv run pytest tests/ -v --tb=short --cov --cov-report=xml --cov-report=html --cov-report=term | |
| - name: Upload coverage reports | |
| uses: codecov/codecov-action@v4 | |
| if: always() | |
| with: | |
| files: ./Server/coverage.xml | |
| flags: python | |
| name: python-coverage | |
| fail_ci_if_error: false | |
| - name: Upload test results | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: pytest-results | |
| path: | | |
| Server/.pytest_cache/ | |
| Server/tests/ | |
| Server/coverage.xml | |
| Server/htmlcov/ |