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
15- 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
16+ uses : actions/checkout@v6
17+ - name : Install NSIS
18+ uses : repolevedavaj/install-nsis@v1.1.0
2419 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+ nsis-version : ' 3.11'
3821 - name : Build Reindexer
3922 run : |
4023 mkdir build && cd build
41- cmake -G "${{matrix.compiler}}" ..
24+ cmake -G "${{matrix.compiler}}" -DBUILD_ANN_INDEXES=builtin .. $EXTRA_FLAGS
4225 cmake --build . --config Release
4326 cmake --build . --config Release --target face
4427 cmake --build . --config Release --target swagger
@@ -47,14 +30,12 @@ jobs:
4730 build :
4831 strategy :
4932 matrix :
50- os : [ubuntu-22.04, ubuntu-24.04, macos-13 ]
33+ os : [ubuntu-22.04, ubuntu-24.04, macos-15 ]
5134 include :
5235 - os : ubuntu-latest
5336 sanitizer : ASAN
5437 - os : ubuntu-latest
5538 sanitizer : TSAN
56- cc : gcc-12
57- cxx : g++-12
5839 fail-fast : false
5940 runs-on : ${{matrix.os}}
6041 env :
6445 SANITIZER : ${{matrix.sanitizer}}
6546 steps :
6647 - name : Checkout repository
67- uses : actions/checkout@v4
48+ uses : actions/checkout@v6
6849 - name : Prepare Environment
6950 run : |
7051 ./.github/workflows/install_gtest.sh
8263 mkdir build && cd build
8364 if [[ $OS == ubuntu-latest ]]; then
8465 if [[ $SANITIZER == 'ASAN' ]]; then
85- cmake -DENABLE_GRPC=ON -DWITH_${{matrix.sanitizer}}=On -DGTEST_SKIP_SHARDING =On ..
66+ cmake -DENABLE_GRPC=ON -DWITH_${{matrix.sanitizer}}=On -DGTEST_SKIP_ASAN_MEMORY_HEAVY =On ..
8667 else
8768 cmake -DENABLE_GRPC=ON -DWITH_${{matrix.sanitizer}}=On ..
8869 fi
9475 make -j4
9576 STRIP=/bin/true cpack
9677 - name : ' C++ tests'
97- if : ${{ matrix.os == 'macos-13 ' }}
78+ if : ${{ matrix.os == 'macos-15 ' }}
9879 run : |
9980 echo "Running C++ directly in this job due to Action's problem with artifacts transition for macos-11 and macos-12 runners"
10081 cd build
10586 rm -rf ./build/_CPack_Packages ./build/cpp_src/server/reindexer_server_resources
10687 tar -cvf artifacts.tar build/ bindings/builtin/builtin_posix.go bindings/builtinserver/builtinserver_posix.go dependencies.sh
10788 - name : Archive Artifacts
108- uses : actions/upload-artifact@v4
89+ uses : actions/upload-artifact@v7
10990 with :
11091 name : ${{matrix.os}}${{matrix.sanitizer}}
11192 path : artifacts.tar
11495 test :
11596 strategy :
11697 matrix :
117- os : [ubuntu-22.04, ubuntu-24.04, macos-13 ]
98+ os : [ubuntu-22.04, ubuntu-24.04, macos-15 ]
11899 test : ['C++', 'GO']
119100 include :
120101 - os : ubuntu-latest
@@ -123,14 +104,12 @@ jobs:
123104 - os : ubuntu-latest
124105 sanitizer : ASAN
125106 test : ' GO'
126- # - os: ubuntu-latest
127- # sanitizer: TSAN
128- # cc: gcc-12
129- # cxx: g++-12
130- # test: 'C++'
107+ # os: ubuntu-latest
108+ # test: 'C++'
131109 - os : ubuntu-latest
132110 sanitizer : TSAN
133111 test : ' GO'
112+
134113 fail-fast : false
135114 runs-on : ${{matrix.os}}
136115 needs : build
@@ -142,24 +121,24 @@ jobs:
142121 SANITIZER : ${{matrix.sanitizer}}
143122 steps :
144123 - name : Checkout repository
145- if : ${{ matrix.os != 'macos-13 ' || matrix.test == 'GO' }}
146- uses : actions/checkout@v4
124+ if : ${{ matrix.os != 'macos-15 ' || matrix.test == 'GO' }}
125+ uses : actions/checkout@v6
147126 - name : Install Go
148- uses : actions/setup-go@v5
149- if : ${{ matrix.os == 'macos-13 ' && matrix.test == 'GO' }}
127+ uses : actions/setup-go@v6
128+ if : ${{ matrix.os == 'macos-15 ' && matrix.test == 'GO' }}
150129 with :
151- go-version : ' 1.22 .x'
130+ go-version : ' 1.26 .x'
152131 check-latest : true
153132 - name : Download ${{matrix.os}}${{matrix.sanitizer}} Artifacts
154- if : ${{ matrix.os != 'macos-13 ' || matrix.test == 'GO' }}
155- uses : actions/download-artifact@v4
133+ if : ${{ matrix.os != 'macos-15 ' || matrix.test == 'GO' }}
134+ uses : actions/download-artifact@v8
156135 with :
157136 name : ${{matrix.os}}${{matrix.sanitizer}}
158137 - name : ' Untar Artifacts'
159- if : ${{ matrix.os != 'macos-13 ' || matrix.test == 'GO' }}
138+ if : ${{ matrix.os != 'macos-15 ' || matrix.test == 'GO' }}
160139 run : tar -xvf artifacts.tar
161140 - name : Prepare Environment
162- if : ${{ matrix.os != 'macos-13 ' || matrix.test == 'GO' }}
141+ if : ${{ matrix.os != 'macos-15 ' || matrix.test == 'GO' }}
163142 env :
164143 OS : ${{matrix.os}}
165144 run : |
@@ -174,7 +153,7 @@ jobs:
174153 ./.github/workflows/install_gtest_parallel.sh
175154 fi
176155 - name : Tests
177- if : ${{ matrix.os != 'macos-13 ' || matrix.test == 'GO' }}
156+ if : ${{ matrix.os != 'macos-15 ' || matrix.test == 'GO' }}
178157 run : |
179158 if [[ $TEST == 'GO' ]]; then
180159 if [[ $SANITIZER == 'ASAN' ]]; then
@@ -183,7 +162,12 @@ jobs:
183162 if [[ -z "$SANITIZER" ]]; then
184163 go test -timeout 15m ./test/... -bench . -benchmem -benchtime 100ms -seedcount 50000
185164 else
186- go test -timeout 35m ./test/... -bench . -benchmem -benchtime 100ms -seedcount 50000
165+ export TSAN_OPTIONS="halt_on_error=1 suppressions=$PWD/test/tsan/builtin.tsan.suppressions"
166+ mkdir gotests
167+ # Using preocompiled tests to get readable Thread sanitizer backtraces from builtin C++ library
168+ go test ./test/... -c -o gotests -tags tiny_vectors
169+ ./gotests/test.test -test.timeout 35m -test.bench . -test.benchmem -test.benchtime 100ms -seedcount 50000
170+ ./gotests/ft.test -test.bench . -test.benchmem -test.benchtime 100ms -seedcount 50000
187171 fi
188172 else
189173 cd build
@@ -202,7 +186,7 @@ jobs:
202186 OS : ${{matrix.os}}
203187 steps :
204188 - name : Download ${{matrix.os}} Artifacts
205- uses : actions/download-artifact@v4
189+ uses : actions/download-artifact@v8
206190 with :
207191 name : ${{matrix.os}}
208192 - name : ' Untar Artifacts'
@@ -219,9 +203,9 @@ jobs:
219203 run : |
220204 cd build
221205 if [[ $OS == ubuntu* ]]; then
222- sudo dpkg -i reindexer-4- dev*.deb
206+ sudo dpkg -i reindexer-dev*.deb
223207 sudo apt-get install -f
224- sudo dpkg -i reindexer-4- server*.deb
208+ sudo dpkg -i reindexer-server*.deb
225209 sudo apt-get install -f
226210 else
227211 for f in reindexer-*.tar.gz; do tar -xvzf "$f"; done
@@ -236,7 +220,7 @@ jobs:
236220 cp ./usr/local/etc/reindexer.conf.pkg /usr/local/etc/reindexer.conf.pkg
237221 fi
238222 - name : Clone PyReindexer
239- uses : actions/checkout@v4
223+ uses : actions/checkout@v6
240224 with :
241225 repository : restream/reindexer-py
242226 - name : Install PyReindexer
@@ -247,4 +231,3 @@ jobs:
247231 run : |
248232 cd pyreindexer
249233 ../.github/workflows/test.sh
250-
0 commit comments