docs(plan): mark v0.1 complete and write the pre-public checklist #2
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: | |
| pull_request: | |
| # No secrets are used anywhere in this workflow, and none should be added. | |
| # Every test must pass with no network connection and no API key. A test that | |
| # needs either is wrong and gets marked and excluded, not accommodated with a | |
| # secret. | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| check: | |
| name: ${{ matrix.os }} / Python ${{ matrix.python }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, windows-latest] | |
| python: ["3.12", "3.13"] | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| enable-cache: true | |
| - name: Sync dependencies | |
| # The local extra (torch, transformers) is deliberately not installed. | |
| # plumbline must import and run hosted-only, and CI is where that stays | |
| # true. | |
| run: uv sync --locked | |
| - name: Lint | |
| run: uv run ruff check . | |
| - name: Format | |
| run: uv run ruff format --check . | |
| - name: Types | |
| run: uv run mypy --strict | |
| - name: Tests | |
| run: uv run pytest |