name: Violin CI on: push: pull_request: permissions: contents: read jobs: test: strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest] python: ["3.11", "3.12", "3.13"] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python }} - uses: astral-sh/setup-uv@v6 with: enable-cache: true - name: Install development dependencies run: uv sync --dev - name: Ruff lint run: uv run ruff check . - name: Ruff format run: uv run ruff format --check . - name: Run tests run: uv run pytest -q -p no:cacheprovider - name: Validate release run: uv run python scripts/violin_guard.py check-release