Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
6f8f451
Migrate to dependabot and use version tags
ethanglaser Dec 18, 2025
de4a979
Move CI scripts from docker/ to .github/scripts
ethanglaser Dec 18, 2025
95fba0b
Remove unnecessary chmods for .github scripts
ethanglaser Dec 18, 2025
6d9cda4
Use latest release binaries in cpp bindings and example
ethanglaser Dec 18, 2025
71d19a3
Fail if ctests not found for runtime bindings
ethanglaser Dec 18, 2025
f4f4818
Add license to dependabot
ethanglaser Dec 19, 2025
ceee452
Add Faiss-SVS examples to pipeline
ethanglaser Dec 19, 2025
ad1da8d
Merge branch 'main' into dev/eglaser-ghactions-refactoring
ethanglaser Jan 6, 2026
255dd9a
Add examples XFAIL for non-intel hardware
ethanglaser Jan 6, 2026
287d5f3
Add xfail for python example as well
ethanglaser Jan 6, 2026
d095291
whitespace cleanup
ethanglaser Jan 6, 2026
52d3b22
Revert upload-artifact version
ethanglaser Jan 8, 2026
61cf0da
Merge branch 'main' into dev/eglaser-ghactions-refactoring
ethanglaser Jan 14, 2026
1e1a8d5
temporarily test against faiss PR
ethanglaser Jan 14, 2026
fe81308
Use latest major version for actions
ethanglaser Jan 20, 2026
cd16479
downgrade upload-action to v4
ethanglaser Jan 20, 2026
6a6dd4c
Clone main faiss branch
ethanglaser Jan 26, 2026
1bbb634
One last attempt at upload v6
ethanglaser Jan 26, 2026
f37b29f
restore upload and download to v4
ethanglaser Jan 26, 2026
9791ff3
Merge branch 'main' into dev/eglaser-ghactions-refactoring
ethanglaser Jan 26, 2026
97b79e5
Merge branch 'main' into dev/eglaser-ghactions-refactoring
ethanglaser Jan 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Copyright 2025 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
commit-message:
prefix: "chore(actions)"
labels:
- dependencies
- actions
groups:
github-actions:
patterns:
- "*"
6 changes: 0 additions & 6 deletions .github/renovate.json

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,52 @@ echo "-----------------------------------------------"
echo " FAISS C++ tests: "
./tests/faiss_test --gtest_filter=SVS.*
echo "-----------------------------------------------"
echo " FAISS-SVS C++ examples: "
make 10-SVS-Vamana-LVQ 11-SVS-Vamana-LeanVec
# Check if running on Intel hardware (LVQ/LeanVec require Intel-specific instructions)
if grep -q "GenuineIntel" /proc/cpuinfo; then
./tutorial/cpp/10-SVS-Vamana-LVQ
./tutorial/cpp/11-SVS-Vamana-LeanVec
else
echo "Non-Intel CPU detected - LVQ/LeanVec examples expected to fail"
set +e
./tutorial/cpp/10-SVS-Vamana-LVQ
exit_code_10=$?
./tutorial/cpp/11-SVS-Vamana-LeanVec
exit_code_11=$?
set -e

if [ $exit_code_10 -ne 0 ] && [ $exit_code_11 -ne 0 ]; then
echo "XFAIL: Examples failed as expected on non-Intel hardware"
else
echo "UNEXPECTED: One or more tests passed on non-Intel hardware (exit codes: $exit_code_10, $exit_code_11)"
exit 1
fi
fi
echo "-----------------------------------------------"
echo " FAISS python bindings: "
cd faiss/python/
python setup.py build
echo "-----------------------------------------------"
echo " FAISS python tests: "
cd ../../../tests/
PYTHONPATH=../build/faiss/python/build/lib/ OMP_NUM_THREADS=8 python -m unittest test_svs.py
echo "-----------------------------------------------"
echo " FAISS-SVS python examples: "
cd ../tutorial/python/
if grep -q "GenuineIntel" /proc/cpuinfo; then
PYTHONPATH=../../build/faiss/python/build/lib/ OMP_NUM_THREADS=8 python 11-SVS.py
else
echo "Non-Intel CPU detected - SVS python example expected to fail"
set +e
PYTHONPATH=../../build/faiss/python/build/lib/ OMP_NUM_THREADS=8 python 11-SVS.py
exit_code=$?
set -e

if [ $exit_code -ne 0 ]; then
echo "XFAIL: Python example failed as expected on non-Intel hardware"
else
echo "UNEXPECTED: Python example passed on non-Intel hardware"
exit 1
fi
fi
16 changes: 8 additions & 8 deletions .github/workflows/build-cpp-runtime-bindings.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
fail-fast: false

steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@v6

- name: Build Docker image
run: |
Expand All @@ -58,17 +58,17 @@ jobs:
-e ENABLE_LVQ_LEANVEC=${{ matrix.enable_lvq_leanvec }} \
-e SUFFIX=${{ matrix.suffix }} \
svs-manylinux228:latest \
/bin/bash -c "chmod +x docker/x86_64/build-cpp-runtime-bindings.sh && ./docker/x86_64/build-cpp-runtime-bindings.sh"
/bin/bash .github/scripts/build-cpp-runtime-bindings.sh

- name: Upload cpp runtime bindings artifacts
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: svs-cpp-runtime-bindings${{ matrix.suffix }}
path: svs-cpp-runtime-bindings${{ matrix.suffix }}.tar.gz
retention-days: 7 # Reduce retention due to size

- name: Upload conda package artifacts
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: libsvs-runtime-conda${{ matrix.suffix }}
path: conda-bld/linux-64/libsvs-runtime-*.conda
Expand All @@ -81,7 +81,7 @@ jobs:
-v ${{ github.workspace }}:/workspace \
-w /workspace \
svs-manylinux228:latest \
/bin/bash -c "source /etc/bashrc || true && ctest --test-dir bindings/cpp/build_cpp_bindings/tests --output-on-failure --verbose"
/bin/bash -c "source /etc/bashrc || true && ctest --test-dir bindings/cpp/build_cpp_bindings/tests --output-on-failure --no-tests=error --verbose"

# Run full test script using the built artifacts
test:
Expand All @@ -97,15 +97,15 @@ jobs:
suffix: "-public-only"

steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@v6

- name: Build Docker image
run: |
docker build -t svs-manylinux228:latest -f docker/x86_64/manylinux228/Dockerfile .

# Need to download for a new job
- name: Download conda package
uses: actions/download-artifact@v7
uses: actions/download-artifact@v4
with:
name: libsvs-runtime-conda${{ matrix.suffix }}
path: runtime_conda
Expand All @@ -122,4 +122,4 @@ jobs:
-w /workspace \
-e SUFFIX=${{ matrix.suffix }} \
svs-manylinux228:latest \
/bin/bash -c "chmod +x docker/x86_64/test-cpp-runtime-bindings.sh && ./docker/x86_64/test-cpp-runtime-bindings.sh"
/bin/bash .github/scripts/test-cpp-runtime-bindings.sh
2 changes: 1 addition & 1 deletion .github/workflows/build-linux-arm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jobs:
cc: clang-15

steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@v6

- name: Configure build
working-directory: ${{ runner.temp }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ jobs:
ivf: ON

steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@v6
- name: Install MKL
timeout-minutes: 5
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-macos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
needs_prefix: true

steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@v6

- name: Install Compiler
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cibuildwheel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
runs-on: ubuntu-22.04

steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@v6

- name: Build Container
run: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ jobs:
pre-commit:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: '3.12'
- uses: pre-commit/action@v3.0.1
- uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1
2 changes: 1 addition & 1 deletion .github/workflows/skywalking-eyes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@v6
- name: Run check
uses: apache/skywalking-eyes/header@61275cc80d0798a405cb070f7d3a8aaf7cf2c2c1 # v0.8.0
with:
Expand Down
4 changes: 2 additions & 2 deletions bindings/cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -98,14 +98,14 @@ if (SVS_RUNTIME_ENABLE_LVQ_LEANVEC)
else()
# Links to LTO-enabled static library, requires GCC/G++ 11.2
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "11.2" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "11.3")
set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/v1.0.0-dev/svs-shared-library-1.0.0-NIGHTLY-20251119-807-lto.tar.gz"
set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/v0.1.0/svs-shared-library-0.1.0-lto.tar.gz"
CACHE STRING "URL to download SVS shared library")
else()
message(WARNING
"Pre-built LVQ/LeanVec SVS library requires GCC/G++ v.11.2 to apply LTO optimizations."
"Current compiler: ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}"
)
set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/v0.0.11/svs-shared-library-0.0.11.tar.gz"
set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/v0.1.0/svs-shared-library-0.1.0.tar.gz"
CACHE STRING "URL to download SVS shared library")
endif()
include(FetchContent)
Expand Down
2 changes: 1 addition & 1 deletion examples/cpp/shared/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ find_package(svs QUIET)
if(NOT svs_FOUND)
# If sourcing from pip/conda, the following steps are not necessary, simplifying workflow
# If not found, download tarball from GitHub release and follow steps to fetch and find
set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/v0.0.11/svs-shared-library-0.0.11.tar.gz" CACHE STRINGS "URL to download SVS shared library tarball if not found in system")
set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/v0.1.0/svs-shared-library-0.1.0.tar.gz" CACHE STRINGS "URL to download SVS shared library tarball if not found in system")

message(STATUS "SVS not found in system, downloading from: ${SVS_URL}")

Expand Down
Loading