[pre-commit.ci] pre-commit autoupdate #18
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 ] | |
| pull_request: | |
| branches: [ main, develop ] | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v3 | |
| with: | |
| version: "latest" | |
| - name: Install dependencies | |
| run: | | |
| uv sync --all-extras --dev | |
| - name: Run tests (excluding live credential tests) | |
| run: | | |
| uv run pytest tests/ -v -m "not live" --cov --cov-branch --cov-report=xml | |
| - name: Rename coverage file | |
| run: mv .coverage .coverage.${{ matrix.python-version }} | |
| - name: Upload coverage file | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: coverage-${{ matrix.python-version }} | |
| path: .coverage.${{ matrix.python-version }} | |
| - name: Upload coverage reports to Codecov | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| slug: acsone/msgraphfs | |
| test-with-credentials: | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| environment: testing-with-credentials | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python 3.11 | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: "3.11" | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v3 | |
| with: | |
| version: "latest" | |
| - name: Install dependencies | |
| run: | | |
| uv sync --all-extras --dev | |
| - name: Run live credential tests (if credentials available) | |
| env: | |
| MSGRAPHFS_CLIENT_ID: ${{ secrets.MSGRAPHFS_CLIENT_ID }} | |
| MSGRAPHFS_TENANT_ID: ${{ secrets.MSGRAPHFS_TENANT_ID }} | |
| MSGRAPHFS_CLIENT_SECRET: ${{ secrets.MSGRAPHFS_CLIENT_SECRET }} | |
| run: | | |
| if [ -n "$MSGRAPHFS_CLIENT_ID" ] && [ -n "$MSGRAPHFS_TENANT_ID" ] && [ -n "$MSGRAPHFS_CLIENT_SECRET" ]; then | |
| echo "Running live credential tests..." | |
| uv run pytest tests/ -v -m "live" --tb=short -cov --cov-branch --cov-report=xml | |
| else | |
| echo "Skipping live credential tests - credentials not configured" | |
| echo "no coverage" > .coverage.live | |
| fi | |
| - name: Upload live coverage file | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: coverage-live | |
| path: .coverage.live | |
| merge-coverage: | |
| needs: [test, test-with-credentials] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v3 | |
| with: | |
| version: "latest" | |
| - name: Install dependencies | |
| run: | | |
| uv sync --all-extras --dev | |
| - name: Download all coverage artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: coverages | |
| - name: Combine coverage reports | |
| run: | | |
| pip install coverage | |
| cd coverages | |
| find . -name ".coverage.*" -exec mv {} . \; | |
| coverage combine | |
| coverage xml | |
| - name: Upload merged coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| slug: acsone/msgraphfs |