name: Tests on: push: branches: [main] pull_request: branches: [main] workflow_dispatch: jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: astral-sh/setup-uv@v4 with: enable-cache: true - name: Set up Python uses: actions/setup-python@v5 with: python-version-file: "pyproject.toml" - name: Install dependencies run: uv sync --all-extras - name: Lint run: uv run ruff check - name: Type check run: uv run pyright test: needs: lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: astral-sh/setup-uv@v4 with: enable-cache: true - name: Set up Python uses: actions/setup-python@v5 with: python-version-file: "pyproject.toml" - name: Install dependencies run: uv sync --all-extras - name: Run tests with coverage run: uv run pytest -m "not integration" --cov=haiku --cov-report=xml - name: Upload coverage to Codecov uses: codecov/codecov-action@v5 with: token: ${{ secrets.CODECOV_TOKEN }} files: ./coverage.xml fail_ci_if_error: false