feat: modernize tooling to uv, ruff, ty, and dependency-groups #4
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: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: astral-sh/setup-uv@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install dev dependencies | |
| run: uv sync --group lint | |
| - name: Ruff format check | |
| run: uv run ruff format --check . | |
| - name: Ruff lint | |
| run: uv run ruff check . | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.11", "3.12", "3.13"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: astral-sh/setup-uv@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install package with dev deps | |
| run: uv sync --all-groups | |
| - name: Run tests with coverage | |
| run: uv run pytest --tb=short -q | |
| typecheck: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: astral-sh/setup-uv@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install type checking dependencies | |
| run: uv sync --group typecheck | |
| - name: Run ty type checker | |
| run: uv run ty check dotfile_sync/ | |
| build: | |
| runs-on: ubuntu-latest | |
| needs: [test, lint, typecheck] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: astral-sh/setup-uv@v5 | |
| with: | |
| python-version: "3.11" | |
| - name: Build package | |
| run: uv build | |
| - name: Verify package | |
| run: uv run dotfile-sync --version |