From 7362f95d2c659eb479571a56fcb36389afbdda03 Mon Sep 17 00:00:00 2001 From: Nikolay Petrov Date: Fri, 16 Oct 2026 12:32:57 -0700 Subject: [PATCH] ci: skip PR runs of workflows the change cannot affect Add pull_request paths-ignore filters to the six build workflows. The root CMake project never builds bindings/, so a C API-only PR no longer runs the x86/ARM/macOS core matrix, and docs- or CODEOWNERS-only PRs run nothing heavy. Pushes to main are unfiltered. Filters are ignore-lists, so an unlisted path still triggers the workflow. Replayed against the PRs of the last 30 days this skips ~12k of ~71k PR-event runner-minutes. Also drop -DSVS_EXPERIMENTAL_LEANVEC=YES from the ARM and macOS builds; the option no longer exists in the CMake project. --- .github/workflows/build-c-api-bindings.yml | 27 +++++++++++++++++ .../workflows/build-cpp-runtime-bindings.yml | 27 +++++++++++++++++ .github/workflows/build-linux-arm.yml | 26 +++++++++++++++-- .github/workflows/build-linux.yml | 23 +++++++++++++++ .github/workflows/build-macos.yaml | 26 +++++++++++++++-- .github/workflows/cibuildwheel.yml | 29 +++++++++++++++++++ 6 files changed, 154 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-c-api-bindings.yml b/.github/workflows/build-c-api-bindings.yml index a70c68ef1..ed2f04b6a 100644 --- a/.github/workflows/build-c-api-bindings.yml +++ b/.github/workflows/build-c-api-bindings.yml @@ -19,6 +19,33 @@ on: branches: - main pull_request: + # Skip PR runs whose changes cannot affect what this workflow builds or tests. Pushes + # to main still run everything. An unlisted path runs the workflow, so a new + # directory is covered until it is deliberately added here. + paths-ignore: + - '**/*.md' + - LICENSE + - THIRD-PARTY-PROGRAMS + - .github/CODEOWNERS + - .github/dependabot.yml + - .github/workflows/pre-commit.yml + - .github/workflows/skywalking-eyes.yml + - bindings/python/** + - examples/cpp/** + - examples/python/** + - tests/** + - benchmark/** + - utils/** + - .github/scripts/setup_apt_repo_linux.sh + - bindings/cpp/** + - .github/scripts/build-cpp-runtime-bindings.sh + - .github/scripts/test-cpp-runtime-*.sh + - .github/scripts/test-faiss.sh + - .github/workflows/build-linux.yml + - .github/workflows/build-linux-arm.yml + - .github/workflows/build-macos.yaml + - .github/workflows/build-cpp-runtime-bindings.yml + - .github/workflows/cibuildwheel.yml workflow_dispatch: permissions: diff --git a/.github/workflows/build-cpp-runtime-bindings.yml b/.github/workflows/build-cpp-runtime-bindings.yml index b87cd0ab5..e23a3e84d 100644 --- a/.github/workflows/build-cpp-runtime-bindings.yml +++ b/.github/workflows/build-cpp-runtime-bindings.yml @@ -19,6 +19,33 @@ on: branches: - main pull_request: + # Skip PR runs whose changes cannot affect what this workflow builds or tests. Pushes + # to main still run everything. An unlisted path runs the workflow, so a new + # directory is covered until it is deliberately added here. + paths-ignore: + - '**/*.md' + - LICENSE + - THIRD-PARTY-PROGRAMS + - .github/CODEOWNERS + - .github/dependabot.yml + - .github/workflows/pre-commit.yml + - .github/workflows/skywalking-eyes.yml + - bindings/python/** + - examples/cpp/** + - examples/python/** + - tests/** + - benchmark/** + - utils/** + - .github/scripts/setup_apt_repo_linux.sh + - bindings/c/** + - examples/c/** + - .github/scripts/build-c-api-bindings.sh + - .github/scripts/test-c-api-*.sh + - .github/workflows/build-linux.yml + - .github/workflows/build-linux-arm.yml + - .github/workflows/build-macos.yaml + - .github/workflows/build-c-api-bindings.yml + - .github/workflows/cibuildwheel.yml workflow_dispatch: permissions: diff --git a/.github/workflows/build-linux-arm.yml b/.github/workflows/build-linux-arm.yml index 57489af66..0e70d4ba9 100644 --- a/.github/workflows/build-linux-arm.yml +++ b/.github/workflows/build-linux-arm.yml @@ -19,6 +19,29 @@ on: branches: - main pull_request: + # Skip PR runs whose changes cannot affect what this workflow builds or tests. Pushes + # to main still run everything. An unlisted path runs the workflow, so a new + # directory is covered until it is deliberately added here. + paths-ignore: + - '**/*.md' + - LICENSE + - THIRD-PARTY-PROGRAMS + - .github/CODEOWNERS + - .github/dependabot.yml + - .github/workflows/pre-commit.yml + - .github/workflows/skywalking-eyes.yml + - bindings/** + - examples/c/** + - examples/python/** + - docker/** + - .github/scripts/build-c-api-bindings.sh + - .github/scripts/test-c-api-*.sh + - .github/scripts/build-cpp-runtime-bindings.sh + - .github/scripts/test-cpp-runtime-*.sh + - .github/scripts/test-faiss.sh + - .github/workflows/build-c-api-bindings.yml + - .github/workflows/build-cpp-runtime-bindings.yml + - .github/workflows/cibuildwheel.yml workflow_dispatch: permissions: @@ -59,8 +82,7 @@ jobs: -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ -DSVS_BUILD_BINARIES=YES \ -DSVS_BUILD_TESTS=YES \ - -DSVS_BUILD_EXAMPLES=YES \ - -DSVS_EXPERIMENTAL_LEANVEC=YES + -DSVS_BUILD_EXAMPLES=YES - name: Build Tests and Utilities working-directory: ${{ runner.temp }}/build diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index 328590cae..7ae300034 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -19,6 +19,29 @@ on: branches: - main pull_request: + # Skip PR runs whose changes cannot affect what this workflow builds or tests. Pushes + # to main still run everything. An unlisted path runs the workflow, so a new + # directory is covered until it is deliberately added here. + paths-ignore: + - '**/*.md' + - LICENSE + - THIRD-PARTY-PROGRAMS + - .github/CODEOWNERS + - .github/dependabot.yml + - .github/workflows/pre-commit.yml + - .github/workflows/skywalking-eyes.yml + - bindings/** + - examples/c/** + - examples/python/** + - docker/** + - .github/scripts/build-c-api-bindings.sh + - .github/scripts/test-c-api-*.sh + - .github/scripts/build-cpp-runtime-bindings.sh + - .github/scripts/test-cpp-runtime-*.sh + - .github/scripts/test-faiss.sh + - .github/workflows/build-c-api-bindings.yml + - .github/workflows/build-cpp-runtime-bindings.yml + - .github/workflows/cibuildwheel.yml workflow_dispatch: permissions: diff --git a/.github/workflows/build-macos.yaml b/.github/workflows/build-macos.yaml index 51e125d6d..015273c36 100644 --- a/.github/workflows/build-macos.yaml +++ b/.github/workflows/build-macos.yaml @@ -19,6 +19,29 @@ on: branches: - main pull_request: + # Skip PR runs whose changes cannot affect what this workflow builds or tests. Pushes + # to main still run everything. An unlisted path runs the workflow, so a new + # directory is covered until it is deliberately added here. + paths-ignore: + - '**/*.md' + - LICENSE + - THIRD-PARTY-PROGRAMS + - .github/CODEOWNERS + - .github/dependabot.yml + - .github/workflows/pre-commit.yml + - .github/workflows/skywalking-eyes.yml + - bindings/** + - examples/c/** + - examples/python/** + - docker/** + - .github/scripts/build-c-api-bindings.sh + - .github/scripts/test-c-api-*.sh + - .github/scripts/build-cpp-runtime-bindings.sh + - .github/scripts/test-cpp-runtime-*.sh + - .github/scripts/test-faiss.sh + - .github/workflows/build-c-api-bindings.yml + - .github/workflows/build-cpp-runtime-bindings.yml + - .github/workflows/cibuildwheel.yml workflow_dispatch: permissions: @@ -72,8 +95,7 @@ jobs: -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ -DSVS_BUILD_BINARIES=YES \ -DSVS_BUILD_TESTS=YES \ - -DSVS_BUILD_EXAMPLES=YES \ - -DSVS_EXPERIMENTAL_LEANVEC=YES + -DSVS_BUILD_EXAMPLES=YES - name: Build Tests and Utilities working-directory: ${{ runner.temp }}/build diff --git a/.github/workflows/cibuildwheel.yml b/.github/workflows/cibuildwheel.yml index 6ab5644f9..bf8c3af71 100644 --- a/.github/workflows/cibuildwheel.yml +++ b/.github/workflows/cibuildwheel.yml @@ -19,6 +19,35 @@ on: branches: - main pull_request: + # Skip PR runs whose changes cannot affect what this workflow builds or tests. Pushes + # to main still run everything. An unlisted path runs the workflow, so a new + # directory is covered until it is deliberately added here. + paths-ignore: + - '**/*.md' + - LICENSE + - THIRD-PARTY-PROGRAMS + - .github/CODEOWNERS + - .github/dependabot.yml + - .github/workflows/pre-commit.yml + - .github/workflows/skywalking-eyes.yml + - bindings/c/** + - bindings/cpp/** + - examples/c/** + - examples/cpp/** + - tests/** + - benchmark/** + - utils/** + - .github/scripts/setup_apt_repo_linux.sh + - .github/scripts/build-c-api-bindings.sh + - .github/scripts/test-c-api-*.sh + - .github/scripts/build-cpp-runtime-bindings.sh + - .github/scripts/test-cpp-runtime-*.sh + - .github/scripts/test-faiss.sh + - .github/workflows/build-linux.yml + - .github/workflows/build-linux-arm.yml + - .github/workflows/build-macos.yaml + - .github/workflows/build-c-api-bindings.yml + - .github/workflows/build-cpp-runtime-bindings.yml workflow_dispatch: permissions: