@@ -3,42 +3,34 @@ name: build
33on : push
44jobs :
55 build-windows-latest :
6- runs-on : windows-latest
6+ runs-on : windows-2025-vs2026
77 strategy :
88 matrix :
9- compiler : [" Visual Studio 17 2022" ]
9+ compiler : [' Visual Studio 18 2026', 'MinGW Makefiles' ]
1010 fail-fast : false
11+ env :
12+ EXTRA_FLAGS :
13+ " ${{ matrix.compiler == 'Visual Studio 18 2026' && '-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+ $PSNativeCommandUseErrorActionPreference = $true
22+ choco install nsis.portable --version=3.11.0 --yes --no-progress
23+ if ($LASTEXITCODE -ne 0) {
24+ throw "Chocolatey failed to install nsis.portable"
25+ }
26+ makensis /VERSION
3827 - name : Build Reindexer
28+ shell : pwsh
3929 run : |
30+ $ErrorActionPreference = "Stop"
31+ $PSNativeCommandUseErrorActionPreference = $true
4032 mkdir build && cd build
41- cmake -G "${{matrix.compiler}}" ..
33+ cmake -G "${{matrix.compiler}}" -DBUILD_ANN_INDEXES=builtin .. $env:EXTRA_FLAGS
4234 cmake --build . --config Release
4335 cmake --build . --config Release --target face
4436 cmake --build . --config Release --target swagger
@@ -47,14 +39,12 @@ jobs:
4739 build :
4840 strategy :
4941 matrix :
50- os : [ubuntu-22.04, ubuntu-24.04, macos-13 ]
42+ os : [ubuntu-22.04, ubuntu-24.04, macos-15 ]
5143 include :
5244 - os : ubuntu-latest
5345 sanitizer : ASAN
5446 - os : ubuntu-latest
5547 sanitizer : TSAN
56- cc : gcc-12
57- cxx : g++-12
5848 fail-fast : false
5949 runs-on : ${{matrix.os}}
6050 env :
6454 SANITIZER : ${{matrix.sanitizer}}
6555 steps :
6656 - name : Checkout repository
67- uses : actions/checkout@v4
57+ uses : actions/checkout@v6
6858 - name : Prepare Environment
6959 run : |
7060 ./.github/workflows/install_gtest.sh
8272 mkdir build && cd build
8373 if [[ $OS == ubuntu-latest ]]; then
8474 if [[ $SANITIZER == 'ASAN' ]]; then
85- cmake -DENABLE_GRPC=ON -DWITH_${{matrix.sanitizer}}=On -DGTEST_SKIP_SHARDING =On ..
75+ cmake -DENABLE_GRPC=ON -DWITH_${{matrix.sanitizer}}=On -DGTEST_SKIP_ASAN_MEMORY_HEAVY =On ..
8676 else
8777 cmake -DENABLE_GRPC=ON -DWITH_${{matrix.sanitizer}}=On ..
8878 fi
9484 make -j4
9585 STRIP=/bin/true cpack
9686 - name : ' C++ tests'
97- if : ${{ matrix.os == 'macos-13 ' }}
87+ if : ${{ matrix.os == 'macos-15 ' }}
9888 run : |
9989 echo "Running C++ directly in this job due to Action's problem with artifacts transition for macos-11 and macos-12 runners"
10090 cd build
10595 rm -rf ./build/_CPack_Packages ./build/cpp_src/server/reindexer_server_resources
10696 tar -cvf artifacts.tar build/ bindings/builtin/builtin_posix.go bindings/builtinserver/builtinserver_posix.go dependencies.sh
10797 - name : Archive Artifacts
108- uses : actions/upload-artifact@v4
98+ uses : actions/upload-artifact@v7
10999 with :
110100 name : ${{matrix.os}}${{matrix.sanitizer}}
111101 path : artifacts.tar
@@ -114,7 +104,7 @@ jobs:
114104 test :
115105 strategy :
116106 matrix :
117- os : [ubuntu-22.04, ubuntu-24.04, macos-13 ]
107+ os : [ubuntu-22.04, ubuntu-24.04, macos-15 ]
118108 test : ['C++', 'GO']
119109 include :
120110 - os : ubuntu-latest
@@ -123,14 +113,12 @@ jobs:
123113 - os : ubuntu-latest
124114 sanitizer : ASAN
125115 test : ' GO'
126- # - os: ubuntu-latest
127- # sanitizer: TSAN
128- # cc: gcc-12
129- # cxx: g++-12
130- # test: 'C++'
116+ # os: ubuntu-latest
117+ # test: 'C++'
131118 - os : ubuntu-latest
132119 sanitizer : TSAN
133120 test : ' GO'
121+
134122 fail-fast : false
135123 runs-on : ${{matrix.os}}
136124 needs : build
@@ -142,24 +130,24 @@ jobs:
142130 SANITIZER : ${{matrix.sanitizer}}
143131 steps :
144132 - name : Checkout repository
145- if : ${{ matrix.os != 'macos-13 ' || matrix.test == 'GO' }}
146- uses : actions/checkout@v4
133+ if : ${{ matrix.os != 'macos-15 ' || matrix.test == 'GO' }}
134+ uses : actions/checkout@v6
147135 - name : Install Go
148- uses : actions/setup-go@v5
149- if : ${{ matrix.os == 'macos-13 ' && matrix.test == 'GO' }}
136+ uses : actions/setup-go@v6
137+ if : ${{ matrix.os == 'macos-15 ' && matrix.test == 'GO' }}
150138 with :
151- go-version : ' 1.22 .x'
139+ go-version : ' 1.26 .x'
152140 check-latest : true
153141 - name : Download ${{matrix.os}}${{matrix.sanitizer}} Artifacts
154- if : ${{ matrix.os != 'macos-13 ' || matrix.test == 'GO' }}
155- uses : actions/download-artifact@v4
142+ if : ${{ matrix.os != 'macos-15 ' || matrix.test == 'GO' }}
143+ uses : actions/download-artifact@v8
156144 with :
157145 name : ${{matrix.os}}${{matrix.sanitizer}}
158146 - name : ' Untar Artifacts'
159- if : ${{ matrix.os != 'macos-13 ' || matrix.test == 'GO' }}
147+ if : ${{ matrix.os != 'macos-15 ' || matrix.test == 'GO' }}
160148 run : tar -xvf artifacts.tar
161149 - name : Prepare Environment
162- if : ${{ matrix.os != 'macos-13 ' || matrix.test == 'GO' }}
150+ if : ${{ matrix.os != 'macos-15 ' || matrix.test == 'GO' }}
163151 env :
164152 OS : ${{matrix.os}}
165153 run : |
@@ -174,7 +162,7 @@ jobs:
174162 ./.github/workflows/install_gtest_parallel.sh
175163 fi
176164 - name : Tests
177- if : ${{ matrix.os != 'macos-13 ' || matrix.test == 'GO' }}
165+ if : ${{ matrix.os != 'macos-15 ' || matrix.test == 'GO' }}
178166 run : |
179167 if [[ $TEST == 'GO' ]]; then
180168 if [[ $SANITIZER == 'ASAN' ]]; then
@@ -183,7 +171,12 @@ jobs:
183171 if [[ -z "$SANITIZER" ]]; then
184172 go test -timeout 15m ./test/... -bench . -benchmem -benchtime 100ms -seedcount 50000
185173 else
186- go test -timeout 35m ./test/... -bench . -benchmem -benchtime 100ms -seedcount 50000
174+ export TSAN_OPTIONS="halt_on_error=1 suppressions=$PWD/test/tsan/builtin.tsan.suppressions"
175+ mkdir gotests
176+ # Using preocompiled tests to get readable Thread sanitizer backtraces from builtin C++ library
177+ go test ./test/... -c -o gotests -tags tiny_vectors
178+ ./gotests/test.test -test.timeout 35m -test.bench . -test.benchmem -test.benchtime 100ms -seedcount 50000
179+ ./gotests/ft.test -test.bench . -test.benchmem -test.benchtime 100ms -seedcount 50000
187180 fi
188181 else
189182 cd build
@@ -202,7 +195,7 @@ jobs:
202195 OS : ${{matrix.os}}
203196 steps :
204197 - name : Download ${{matrix.os}} Artifacts
205- uses : actions/download-artifact@v4
198+ uses : actions/download-artifact@v8
206199 with :
207200 name : ${{matrix.os}}
208201 - name : ' Untar Artifacts'
@@ -219,9 +212,9 @@ jobs:
219212 run : |
220213 cd build
221214 if [[ $OS == ubuntu* ]]; then
222- sudo dpkg -i reindexer-4- dev*.deb
215+ sudo dpkg -i reindexer-dev*.deb
223216 sudo apt-get install -f
224- sudo dpkg -i reindexer-4- server*.deb
217+ sudo dpkg -i reindexer-server*.deb
225218 sudo apt-get install -f
226219 else
227220 for f in reindexer-*.tar.gz; do tar -xvzf "$f"; done
@@ -236,15 +229,15 @@ jobs:
236229 cp ./usr/local/etc/reindexer.conf.pkg /usr/local/etc/reindexer.conf.pkg
237230 fi
238231 - name : Clone PyReindexer
239- uses : actions/checkout@v4
232+ uses : actions/checkout@v6
240233 with :
241234 repository : restream/reindexer-py
242235 - name : Install PyReindexer
243236 run : |
237+ python -m pip install -r requirements.txt
244238 python -m build
245239 python -m pip install .
246240 - name : Test PyReindexer
247241 run : |
248242 cd pyreindexer
249243 ../.github/workflows/test.sh
250-
0 commit comments