Skip to content

docs(contributing): describe the branch protection that now exists #5

docs(contributing): describe the branch protection that now exists

docs(contributing): describe the branch protection that now exists #5

Workflow file for this run

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