Fix CI workflow to use Zensical build command #8
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 | |
| - pull_request | |
| jobs: | |
| tests: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # Legacy: Python 3.9 + Django 3.2 | |
| - python-version: "3.9" | |
| test-env: legacy | |
| # Previous: Python 3.11 + Django 4.2 | |
| - python-version: "3.11" | |
| test-env: previous | |
| # Latest: Python 3.13 + Django 5.1 | |
| - python-version: "3.13" | |
| test-env: latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install just | |
| uses: extractions/setup-just@v2 | |
| - name: Run tests for ${{ matrix.test-env }} | |
| run: just test ${{ matrix.test-env }} ${{ matrix.python-version }} | |
| - name: Upload coverage data | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: coverage-${{ matrix.python-version }}-${{ matrix.test-env }} | |
| path: .coverage.* | |
| include-hidden-files: true | |
| if-no-files-found: error | |
| lint-and-type-check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Set up Python 3.13 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.13" | |
| - name: Install dependencies | |
| run: uv sync --group dev | |
| - name: Check formatting | |
| run: | | |
| uv run ruff check --select I graphql_sqlcommenter | |
| uv run ruff format --check graphql_sqlcommenter | |
| - name: Run linters | |
| run: uv run ruff check graphql_sqlcommenter | |
| - name: Run type checker | |
| run: uv run mypy graphql_sqlcommenter | |
| - name: Check documentation | |
| run: uv run --group docs zensical build --strict | |
| - name: Run security scan | |
| run: uv run bandit -r graphql_sqlcommenter -x tests | |
| coverage: | |
| needs: tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Set up Python 3.13 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.13" | |
| - name: Install coverage | |
| run: uv pip install --system coverage | |
| - name: Download all coverage artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| pattern: coverage-* | |
| merge-multiple: true | |
| - name: Combine and check coverage | |
| run: | | |
| coverage combine | |
| echo "Source coverage (must be 90%+):" | |
| coverage report --fail-under=90 -m | |
| coverage html | |
| - name: Upload coverage HTML | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: coverage-html | |
| path: htmlcov/ |