name: Python CI on: pull_request: paths: - packages/@n8n/task-runner-python/** - .github/workflows/ci-python.yml push: paths: - packages/@n8n/task-runner-python/** jobs: checks: name: Checks runs-on: ubuntu-latest defaults: run: working-directory: packages/@n8n/task-runner-python steps: - name: Check out project uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Install uv uses: astral-sh/setup-uv@d9e0f98d3fc6adb07d1e3d37f3043649ddad06a1 # 6.5.0 with: enable-cache: true - name: Install Python run: uv python install 3.13 - name: Install project dependencies run: uv sync --all-extras --group dev - name: Format check run: uv run ruff format --check - name: Typecheck run: uv run ty check src/ - name: Lint run: uv run ruff check - name: Python unit tests run: uv run pytest --cov=src --cov-report=xml --cov-report=term-missing - name: Upload coverage to Codecov uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3 with: token: ${{ secrets.CODECOV_TOKEN }} files: ./coverage.xml flags: tests name: task-runner-python fail_ci_if_error: false