Add git export workflow for se-lex/sfs repository #40
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: Run Tests | |
| on: | |
| push: | |
| branches: [ main, develop ] | |
| pull_request: | |
| branches: [ main ] | |
| workflow_dispatch: # Allow manual trigger | |
| permissions: | |
| contents: read | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12"] | |
| fail-fast: false # Continue other versions if one fails | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: 'pip' # Cache pip dependencies | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt | |
| pip install pytest pytest-cov pytest-mock requests-mock | |
| - name: Run unit tests | |
| run: | | |
| pytest -v -m "unit" --cov=. --cov-report=term-missing --cov-report=xml | |
| env: | |
| PYTHONPATH: ${{ github.workspace }} | |
| - name: Run integration tests | |
| run: | | |
| pytest -v -m "integration" --cov=. --cov-append --cov-report=term-missing --cov-report=xml | |
| env: | |
| PYTHONPATH: ${{ github.workspace }} | |
| - name: Run API tests | |
| run: | | |
| pytest -v -m "api" --cov=. --cov-append --cov-report=term-missing --cov-report=xml | |
| env: | |
| PYTHONPATH: ${{ github.workspace }} | |
| - name: Run all unmarked tests | |
| run: | | |
| pytest -v -m "not slow" --cov=. --cov-append --cov-report=term-missing --cov-report=xml | |
| env: | |
| PYTHONPATH: ${{ github.workspace }} | |
| - name: Generate coverage report | |
| if: always() | |
| run: | | |
| python -m pip install coverage | |
| coverage report --show-missing || true | |
| - name: Upload coverage artifact | |
| if: matrix.python-version == '3.10' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: coverage-report | |
| path: | | |
| coverage.xml | |
| htmlcov/ | |
| retention-days: 30 |