66 runs-on : windows-latest
77 strategy :
88 matrix :
9- compiler : [" Visual Studio 17 2022" ]
9+ compiler : [' Visual Studio 17 2022', 'MinGW Makefiles' ]
1010 fail-fast : false
11+ env :
12+ EXTRA_FLAGS :
13+ " ${{ matrix.compiler == 'Visual Studio 17 2022' && '-Ax64' || '' }}"
1114 steps :
1215 - name : Checkout repository
13- uses : actions/checkout@v4
14- - name : Build Reindexer
16+ uses : actions/checkout@v6
17+ - name : Install NSIS
18+ shell : pwsh
1519 run : |
16- mkdir build && cd build
17- cmake -G "${{matrix.compiler}}" .. -Ax64
18- cmake --build . --config Release
19- cmake --build . --config Release --target face
20- cmake --build . --config Release --target swagger
21- cpack
22- - name : Upload Artifacts
23- uses : actions/upload-artifact@v4
24- with :
25- name : windows-latest
26- path : build/*.exe
27- if-no-files-found : error
28-
29- build-windows-2019 :
30- runs-on : windows-2019
31- strategy :
32- matrix :
33- compiler : ["Visual Studio 16 2019", "MinGW Makefiles"]
34- fail-fast : false
35- steps :
36- - name : Checkout repository
37- uses : actions/checkout@v4
20+ $ErrorActionPreference = "Stop"
21+ choco install nsis.portable --version=3.11.0 --yes --no-progress
22+ if ($LASTEXITCODE -ne 0) {
23+ throw "Chocolatey failed to install nsis.portable"
24+ }
25+ makensis /VERSION
3826 - name : Build Reindexer
3927 run : |
4028 mkdir build && cd build
41- cmake -G "${{matrix.compiler}}" ..
29+ cmake -G "${{matrix.compiler}}" -DBUILD_ANN_INDEXES=builtin .. $EXTRA_FLAGS
4230 cmake --build . --config Release
4331 cmake --build . --config Release --target face
4432 cmake --build . --config Release --target swagger
@@ -47,14 +35,12 @@ jobs:
4735 build :
4836 strategy :
4937 matrix :
50- os : [ubuntu-22.04, ubuntu-24.04, macos-13 ]
38+ os : [ubuntu-22.04, ubuntu-24.04, macos-15 ]
5139 include :
5240 - os : ubuntu-latest
5341 sanitizer : ASAN
5442 - os : ubuntu-latest
5543 sanitizer : TSAN
56- cc : gcc-12
57- cxx : g++-12
5844 fail-fast : false
5945 runs-on : ${{matrix.os}}
6046 env :
6450 SANITIZER : ${{matrix.sanitizer}}
6551 steps :
6652 - name : Checkout repository
67- uses : actions/checkout@v4
53+ uses : actions/checkout@v6
6854 - name : Prepare Environment
6955 run : |
7056 ./.github/workflows/install_gtest.sh
8268 mkdir build && cd build
8369 if [[ $OS == ubuntu-latest ]]; then
8470 if [[ $SANITIZER == 'ASAN' ]]; then
85- cmake -DENABLE_GRPC=ON -DWITH_${{matrix.sanitizer}}=On -DGTEST_SKIP_SHARDING =On ..
71+ cmake -DENABLE_GRPC=ON -DWITH_${{matrix.sanitizer}}=On -DGTEST_SKIP_ASAN_MEMORY_HEAVY =On ..
8672 else
8773 cmake -DENABLE_GRPC=ON -DWITH_${{matrix.sanitizer}}=On ..
8874 fi
9480 make -j4
9581 STRIP=/bin/true cpack
9682 - name : ' C++ tests'
97- if : ${{ matrix.os == 'macos-13 ' }}
83+ if : ${{ matrix.os == 'macos-15 ' }}
9884 run : |
9985 echo "Running C++ directly in this job due to Action's problem with artifacts transition for macos-11 and macos-12 runners"
10086 cd build
10591 rm -rf ./build/_CPack_Packages ./build/cpp_src/server/reindexer_server_resources
10692 tar -cvf artifacts.tar build/ bindings/builtin/builtin_posix.go bindings/builtinserver/builtinserver_posix.go dependencies.sh
10793 - name : Archive Artifacts
108- uses : actions/upload-artifact@v4
94+ uses : actions/upload-artifact@v7
10995 with :
11096 name : ${{matrix.os}}${{matrix.sanitizer}}
11197 path : artifacts.tar
@@ -114,7 +100,7 @@ jobs:
114100 test :
115101 strategy :
116102 matrix :
117- os : [ubuntu-22.04, ubuntu-24.04, macos-13 ]
103+ os : [ubuntu-22.04, ubuntu-24.04, macos-15 ]
118104 test : ['C++', 'GO']
119105 include :
120106 - os : ubuntu-latest
@@ -123,14 +109,12 @@ jobs:
123109 - os : ubuntu-latest
124110 sanitizer : ASAN
125111 test : ' GO'
126- # - os: ubuntu-latest
127- # sanitizer: TSAN
128- # cc: gcc-12
129- # cxx: g++-12
130- # test: 'C++'
112+ # os: ubuntu-latest
113+ # test: 'C++'
131114 - os : ubuntu-latest
132115 sanitizer : TSAN
133116 test : ' GO'
117+
134118 fail-fast : false
135119 runs-on : ${{matrix.os}}
136120 needs : build
@@ -142,24 +126,24 @@ jobs:
142126 SANITIZER : ${{matrix.sanitizer}}
143127 steps :
144128 - name : Checkout repository
145- if : ${{ matrix.os != 'macos-13 ' || matrix.test == 'GO' }}
146- uses : actions/checkout@v4
129+ if : ${{ matrix.os != 'macos-15 ' || matrix.test == 'GO' }}
130+ uses : actions/checkout@v6
147131 - name : Install Go
148- uses : actions/setup-go@v5
149- if : ${{ matrix.os == 'macos-13 ' && matrix.test == 'GO' }}
132+ uses : actions/setup-go@v6
133+ if : ${{ matrix.os == 'macos-15 ' && matrix.test == 'GO' }}
150134 with :
151- go-version : ' 1.22 .x'
135+ go-version : ' 1.26 .x'
152136 check-latest : true
153137 - name : Download ${{matrix.os}}${{matrix.sanitizer}} Artifacts
154- if : ${{ matrix.os != 'macos-13 ' || matrix.test == 'GO' }}
155- uses : actions/download-artifact@v4
138+ if : ${{ matrix.os != 'macos-15 ' || matrix.test == 'GO' }}
139+ uses : actions/download-artifact@v8
156140 with :
157141 name : ${{matrix.os}}${{matrix.sanitizer}}
158142 - name : ' Untar Artifacts'
159- if : ${{ matrix.os != 'macos-13 ' || matrix.test == 'GO' }}
143+ if : ${{ matrix.os != 'macos-15 ' || matrix.test == 'GO' }}
160144 run : tar -xvf artifacts.tar
161145 - name : Prepare Environment
162- if : ${{ matrix.os != 'macos-13 ' || matrix.test == 'GO' }}
146+ if : ${{ matrix.os != 'macos-15 ' || matrix.test == 'GO' }}
163147 env :
164148 OS : ${{matrix.os}}
165149 run : |
@@ -174,7 +158,7 @@ jobs:
174158 ./.github/workflows/install_gtest_parallel.sh
175159 fi
176160 - name : Tests
177- if : ${{ matrix.os != 'macos-13 ' || matrix.test == 'GO' }}
161+ if : ${{ matrix.os != 'macos-15 ' || matrix.test == 'GO' }}
178162 run : |
179163 if [[ $TEST == 'GO' ]]; then
180164 if [[ $SANITIZER == 'ASAN' ]]; then
@@ -183,7 +167,12 @@ jobs:
183167 if [[ -z "$SANITIZER" ]]; then
184168 go test -timeout 15m ./test/... -bench . -benchmem -benchtime 100ms -seedcount 50000
185169 else
186- go test -timeout 35m ./test/... -bench . -benchmem -benchtime 100ms -seedcount 50000
170+ export TSAN_OPTIONS="halt_on_error=1 suppressions=$PWD/test/tsan/builtin.tsan.suppressions"
171+ mkdir gotests
172+ # Using preocompiled tests to get readable Thread sanitizer backtraces from builtin C++ library
173+ go test ./test/... -c -o gotests -tags tiny_vectors
174+ ./gotests/test.test -test.timeout 35m -test.bench . -test.benchmem -test.benchtime 100ms -seedcount 50000
175+ ./gotests/ft.test -test.bench . -test.benchmem -test.benchtime 100ms -seedcount 50000
187176 fi
188177 else
189178 cd build
@@ -202,7 +191,7 @@ jobs:
202191 OS : ${{matrix.os}}
203192 steps :
204193 - name : Download ${{matrix.os}} Artifacts
205- uses : actions/download-artifact@v4
194+ uses : actions/download-artifact@v8
206195 with :
207196 name : ${{matrix.os}}
208197 - name : ' Untar Artifacts'
@@ -219,9 +208,9 @@ jobs:
219208 run : |
220209 cd build
221210 if [[ $OS == ubuntu* ]]; then
222- sudo dpkg -i reindexer-4- dev*.deb
211+ sudo dpkg -i reindexer-dev*.deb
223212 sudo apt-get install -f
224- sudo dpkg -i reindexer-4- server*.deb
213+ sudo dpkg -i reindexer-server*.deb
225214 sudo apt-get install -f
226215 else
227216 for f in reindexer-*.tar.gz; do tar -xvzf "$f"; done
@@ -236,15 +225,15 @@ jobs:
236225 cp ./usr/local/etc/reindexer.conf.pkg /usr/local/etc/reindexer.conf.pkg
237226 fi
238227 - name : Clone PyReindexer
239- uses : actions/checkout@v4
228+ uses : actions/checkout@v6
240229 with :
241230 repository : restream/reindexer-py
242231 - name : Install PyReindexer
243232 run : |
233+ python -m pip install -r requirements.txt
244234 python -m build
245235 python -m pip install .
246236 - name : Test PyReindexer
247237 run : |
248238 cd pyreindexer
249239 ../.github/workflows/test.sh
250-
0 commit comments