diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6b791d4..88649e3 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -87,3 +87,97 @@ jobs: - uses: actions/checkout@v4 - uses: ./.github/actions/setup - run: just pkg-pre-commit + +# === DO_NOT_EDIT: path-sync on === +on: + pull_request: + types: [opened, reopened, synchronize] + push: + branches: + - "**" +# === OK_EDIT: path-sync on === +# === DO_NOT_EDIT: path-sync jobs === +jobs: + pre_job: + runs-on: ubuntu-latest + outputs: + should_skip: ${{ steps.skip_check.outputs.should_skip }} + steps: + - id: skip_check + uses: fkirc/skip-duplicate-actions@v5 + with: + concurrent_skipping: 'same_content_newer' + + lint: + needs: pre_job + if: needs.pre_job.outputs.should_skip != 'true' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/setup + - run: just lint + + fmt: + needs: pre_job + if: needs.pre_job.outputs.should_skip != 'true' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/setup + - run: just fmt-check + + type-check: + needs: pre_job + if: needs.pre_job.outputs.should_skip != 'true' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/setup + - run: just type-check + + test: + needs: pre_job + if: needs.pre_job.outputs.should_skip != 'true' + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ['3.13', '3.14'] + fail-fast: false + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/setup + with: + python-version: ${{ matrix.python-version }} + - run: just test + - run: just cov-full + - name: Upload coverage to Codecov + if: matrix.python-version == '3.13' + uses: codecov/codecov-action@v5 + with: + # Don't auto-search for coverage files, use explicit path instead + disable_search: true + token: ${{ secrets.CODECOV_TOKEN }} + files: ./coverage.xml + + vulture: + needs: pre_job + if: needs.pre_job.outputs.should_skip != 'true' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/setup + - run: just vulture + + pkg-pre-commit: + needs: pre_job + if: needs.pre_job.outputs.should_skip != 'true' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/setup + - run: just pkg-pre-commit +# === OK_EDIT: path-sync jobs === + # Repo-specific jobs: add YAML here (same 2-space indent as pre_job, lint, etc.). + +# === DO_NOT_EDIT: path-sync jobs === +# === OK_EDIT: path-sync jobs ===