From bfdddb3c3ec50d0835d115b3f48bdf4bafa48136 Mon Sep 17 00:00:00 2001 From: Kevin Turcios Date: Tue, 28 Apr 2026 18:50:18 -0500 Subject: [PATCH] ci: only test packages with changed files on PRs --- .github/workflows/ci.yml | 42 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 906124b..af1518f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,7 +23,35 @@ jobs: - run: uv sync --all-packages - uses: j178/prek-action@v2 + changes: + runs-on: ubuntu-latest + permissions: + contents: read + outputs: + packages: ${{ steps.filter.outputs.changes }} + steps: + - uses: actions/checkout@v6 + - uses: dorny/paths-filter@v3 + id: filter + with: + filters: | + codeflash-core: + - 'packages/codeflash-core/**' + codeflash-python: + - 'packages/codeflash-core/**' + - 'packages/codeflash-python/**' + codeflash-api: + - 'packages/codeflash-api/**' + blackbox: + - 'packages/blackbox/**' + github-app: + - 'packages/github-app/**' + test: + needs: changes + if: >- + github.event_name == 'push' + || needs.changes.outputs.packages != '[]' runs-on: ubuntu-latest permissions: contents: read @@ -34,8 +62,18 @@ jobs: python-version: "3.12" enable-cache: true - run: uv sync --all-packages - - name: Test - run: uv run pytest packages/ -v + - name: Test changed packages + run: | + if [ "${{ github.event_name }}" = "push" ]; then + uv run pytest packages/ -v + else + CHANGED='${{ needs.changes.outputs.packages }}' + for pkg in $(echo "$CHANGED" | jq -r '.[]'); do + echo "::group::Testing $pkg" + uv run pytest "packages/$pkg" -v + echo "::endgroup::" + done + fi env: CI: "true"