Skip to content

Commit a2e25a1

Browse files
author
DvirDukhan
authored
Merge branch 'master' into redis-cli-modelget-limitation
2 parents bfe5d44 + 812444a commit a2e25a1

File tree

213 files changed

+14465
-9764
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

213 files changed

+14465
-9764
lines changed

.circleci/config.yml

Lines changed: 156 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,14 @@ commands:
1212
- setup_remote_docker:
1313
docker_layer_caching: true
1414

15+
setup-automation:
16+
steps:
17+
- run:
18+
name: Setup automation
19+
command: |
20+
./opt/readies/bin/getpy3
21+
./opt/system-setup.py
22+
1523
build-steps:
1624
parameters:
1725
platform:
@@ -25,11 +33,10 @@ commands:
2533
keys:
2634
- v1-dependencies-{{ checksum "get_deps.sh" }}
2735
# If no exact match is found will get dependencies from source
36+
- setup-automation
2837
- run:
2938
name: Install dependencies
3039
command: |
31-
./opt/readies/bin/getpy3
32-
BREW_NO_UPDATE=1 ./opt/system-setup.py
3340
./opt/readies/bin/getredis -v 6 --force
3441
./get_deps.sh cpu
3542
- save_cache:
@@ -39,6 +46,11 @@ commands:
3946
- run:
4047
name: Build
4148
command: make -C opt all SHOW=1
49+
- run:
50+
name: Unit Tests
51+
command: |
52+
make -C opt unit_tests SHOW=1
53+
no_output_timeout: 5m
4254
- run:
4355
name: Test
4456
command: |
@@ -55,10 +67,8 @@ commands:
5567
- artifacts/*.zip
5668
- artifacts/*.tgz
5769
- artifacts/*.tar
58-
# - artifacts/shapshots/*.zip
59-
# - artifacts/shapshots/*.tgz
6070
- store_artifacts:
61-
path: test/logs
71+
path: tests/logs
6272

6373
platform-build-steps:
6474
parameters:
@@ -93,8 +103,6 @@ commands:
93103
- artifacts/*.zip
94104
- artifacts/*.tgz
95105
- artifacts/*.tar
96-
# - artifacts/shapshots/*.zip
97-
# - artifacts/shapshots/*.tgz
98106
- store_artifacts:
99107
path: test/logs
100108

@@ -109,6 +117,20 @@ commands:
109117
aws s3 cp artifacts/ s3://redismodules/$PACKAGE_NAME/ --acl public-read --recursive --exclude "*" --include "*.zip" --include "*.tgz"
110118
111119
jobs:
120+
lint:
121+
docker:
122+
- image: redislabsmodules/llvm-toolset:latest
123+
steps:
124+
- checkout
125+
- run:
126+
name: Submodule checkout
127+
command: git submodule update --init --recursive
128+
- setup-automation
129+
- run:
130+
name: lint
131+
command: |
132+
make -C opt lint
133+
112134
build-debian:
113135
docker:
114136
- image: redisfab/rmbuilder:6.0.5-x64-buster
@@ -133,16 +155,15 @@ jobs:
133155
- checkout
134156
- run:
135157
name: Submodule checkout
136-
command: git submodule update --init --recursive
158+
command: git submodule update --init --recursive
137159
- restore_cache:
138160
keys:
139161
- build-dependencies-{{ checksum "get_deps.sh" }}
140162
# If no exact match is found will get dependencies from source
163+
- setup-automation
141164
- run:
142165
name: Install dependencies
143166
command: |
144-
./opt/readies/bin/getpy3
145-
./opt/system-setup.py
146167
./opt/readies/bin/getredis -v 6 --valgrind --force
147168
./get_deps.sh cpu
148169
- run:
@@ -154,7 +175,91 @@ jobs:
154175
command: |
155176
make -C opt test SHOW=1 COV=1 CLUSTER=1
156177
make -C opt cov-upload
157-
no_output_timeout: 20m
178+
no_output_timeout: 30m
179+
180+
valgrind:
181+
docker:
182+
- image: redisfab/rmbuilder:6.0.5-x64-buster
183+
steps:
184+
- checkout
185+
- run:
186+
name: Submodule checkout
187+
command: git submodule update --init --recursive
188+
- restore_cache:
189+
keys:
190+
- build-dependencies-{{ checksum "get_deps.sh" }}
191+
# If no exact match is found will get dependencies from source
192+
- setup-automation
193+
- run:
194+
name: Install dependencies
195+
command: |
196+
./opt/readies/bin/getredis -v 6 --valgrind --force
197+
./get_deps.sh cpu
198+
- run:
199+
name: Build for valgrind
200+
command: |
201+
make -C opt all VALGRIND=1 SHOW=1
202+
- run:
203+
name: Test with valgrind
204+
command: |
205+
make -C opt test VALGRIND=1 CLUSTER=0 AOF=0
206+
no_output_timeout: 120m
207+
208+
valgrind-cluster:
209+
docker:
210+
- image: redisfab/rmbuilder:6.0.5-x64-buster
211+
steps:
212+
- checkout
213+
- run:
214+
name: Submodule checkout
215+
command: git submodule update --init --recursive
216+
- restore_cache:
217+
keys:
218+
- build-dependencies-{{ checksum "get_deps.sh" }}
219+
# If no exact match is found will get dependencies from source
220+
- setup-automation
221+
- run:
222+
name: Install dependencies
223+
command: |
224+
./opt/readies/bin/getredis -v 6 --valgrind --force
225+
./get_deps.sh cpu
226+
- run:
227+
name: Build for valgrind with cluster
228+
command: |
229+
make -C opt all VALGRIND=1 SHOW=1
230+
- run:
231+
name: Test with valgrind and cluster
232+
command: |
233+
make -C opt test VALGRIND=1 GEN=0 AOF=0
234+
no_output_timeout: 120m
235+
236+
valgrind-AOF:
237+
docker:
238+
- image: redisfab/rmbuilder:6.0.5-x64-buster
239+
steps:
240+
- checkout
241+
- run:
242+
name: Submodule checkout
243+
command: git submodule update --init --recursive
244+
- restore_cache:
245+
keys:
246+
- build-dependencies-{{ checksum "get_deps.sh" }}
247+
# If no exact match is found will get dependencies from source
248+
- setup-automation
249+
- run:
250+
name: Install dependencies
251+
command: |
252+
./opt/readies/bin/getredis -v 6 --valgrind --force
253+
./get_deps.sh cpu
254+
- run:
255+
name: Build for valgrind with AOF
256+
command: |
257+
make -C opt all VALGRIND=1 SHOW=1
258+
- run:
259+
name: Test with valgrind and AOF
260+
command: |
261+
make -C opt test VALGRIND=1 GEN=0 CLUSTER=0
262+
no_output_timeout: 120m
158263

159264
build-macos:
160265
macos:
@@ -175,7 +280,7 @@ jobs:
175280
- checkout
176281
- run:
177282
name: Submodule checkout
178-
command: git submodule update --init --recursive
283+
command: git submodule update --init --recursive
179284
- run:
180285
name: Checkout LFS
181286
command: |
@@ -206,7 +311,7 @@ jobs:
206311
- checkout
207312
- run:
208313
name: Submodule checkout
209-
command: git submodule update --init --recursive
314+
command: git submodule update --init --recursive
210315
- run:
211316
name: Build
212317
command: |
@@ -215,7 +320,7 @@ jobs:
215320
name: Test
216321
command: |
217322
mkdir -p $HOME/tests
218-
docker run --gpus all -v $HOME/tests:/build/test/logs -it --rm redisai-gpu:latest-x64-bionic-test
323+
docker run --gpus all -v $HOME/tests:/build/tests/logs -it --rm redisai-gpu:latest-x64-bionic-test
219324
no_output_timeout: 40m
220325
- store_artifacts:
221326
path: test/log
@@ -288,6 +393,17 @@ on-master: &on-master
288393
filters:
289394
branches:
290395
only: master
396+
tags:
397+
ignore: /.*/
398+
399+
on-integ-branch: &on-integ-branch
400+
filters:
401+
branches:
402+
only:
403+
- master
404+
- /^\d+\.\d+.*$/
405+
tags:
406+
ignore: /.*/
291407

292408
on-version-tags: &on-version-tags
293409
filters:
@@ -296,38 +412,45 @@ on-version-tags: &on-version-tags
296412
tags:
297413
only: /^v[0-9].*/
298414

299-
on-master-and-version-tags: &on-master-and-version-tags
415+
on-integ-and-version-tags: &on-integ-and-version-tags
300416
filters:
301417
branches:
302418
only:
303419
- master
420+
- /^\d+\.\d+.*$/
304421
tags:
305422
only: /^v[0-9].*/
306423

307424

308425
platform-build-defs: &platform-build-defs
309426
requires:
310427
- build-debian
311-
<<: *on-master-and-version-tags
428+
<<: *on-integ-and-version-tags
312429
# <<: *on-any-branch # debugging
313430

314431
after-platform-builds: &after-platform-builds
315432
requires:
316-
- build-centos7
433+
# - build-centos7
317434
- build-bionic
318435
- build-xenial
319436

437+
after-linter: &after-linter
438+
requires:
439+
- lint
320440

321441
workflows:
322442
version: 2
323443
build_and_package:
324444
jobs:
445+
- lint:
446+
<<: *on-any-branch
325447
- build-debian:
326448
<<: *on-any-branch
449+
<<: *after-linter
327450
- platform-build:
328451
name: build-centos7
329452
platform: centos7
330-
<<: *platform-build-defs
453+
<<: *never # temporarily disabled
331454
- platform-build:
332455
name: build-bionic
333456
platform: bionic
@@ -338,8 +461,19 @@ workflows:
338461
<<: *platform-build-defs
339462
- coverage:
340463
<<: *on-any-branch
464+
<<: *after-linter
465+
- valgrind:
466+
<<: *on-any-branch
467+
<<: *after-linter
468+
- valgrind-cluster:
469+
<<: *on-integ-branch
470+
<<: *after-linter
471+
- valgrind-AOF:
472+
<<: *on-integ-branch
473+
<<: *after-linter
341474
- build-and-test-gpu:
342475
<<: *on-any-branch
476+
<<: *after-linter
343477
- build-macos:
344478
<<: *never # temporarily disabled
345479
# <<: *on-version-tags
@@ -348,7 +482,7 @@ workflows:
348482
# <<: *on-version-tags
349483
- deploy-snapshot:
350484
<<: *after-platform-builds
351-
<<: *on-master
485+
<<: *on-integ-branch
352486
- deploy-release:
353487
<<: *after-platform-builds
354488
<<: *on-version-tags
@@ -357,7 +491,9 @@ workflows:
357491
triggers:
358492
- schedule:
359493
cron: "20 17 * * *"
360-
<<: *on-master
494+
filters:
495+
branches:
496+
only: master
361497
jobs:
362498
- build-macos:
363499
<<: *never # temporarily disabled

.clang-format

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
IndentWidth: 4
2+
ColumnLimit: 100
3+
SortIncludes: false
4+
AlignEscapedNewlinesLeft: false
5+
AlignConsecutiveMacros: true
6+
SpacesBeforeTrailingComments: 1

.dockerignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/bin/
22
/deps/
3+
/docs/
34
/install*
45
/build/
56
.venv/

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
/deps/
33
/build/
44
/install*
5-
/test/venv/
5+
/tests/venv/
66
logs/
7-
/test/logs/
7+
/tests/logs/
88
.env/
99
env*/
1010
.venv/

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
[submodule "opt/readies"]
22
path = opt/readies
33
url = https://github.com/RedisLabsModules/readies.git
4+
[submodule "opt/googletest"]
5+
path = opt/googletest
6+
url = https://github.com/google/googletest.git

CMakeLists.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ PROJECT(RedisAI)
33

44
# CMake modules should be included in ${PROJECT_SOURCE_DIR}/opt/cmake/modules
55
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/opt/cmake/modules)
6+
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/opt/GoogleTest)
67

78
# Set a default build type if none was specified
89
set(default_build_type "Release")
@@ -23,6 +24,9 @@ ENDIF()
2324
#----------------------------------------------------------------------------------------------
2425

2526
SET(CMAKE_CC_COMMON_FLAGS "-fPIC")
27+
IF (USE_PROFILE)
28+
SET(CMAKE_CC_COMMON_FLAGS "${CMAKE_CC_COMMON_FLAGS} -g -ggdb -fno-omit-frame-pointer")
29+
ENDIF()
2630

2731
IF (USE_COVERAGE)
2832
IF (NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
@@ -46,6 +50,7 @@ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${CMAKE_COMMON_FLAGS_DEBUG}"
4650

4751
#----------------------------------------------------------------------------------------------
4852

53+
option(PACKAGE_UNIT_TESTS "Build unit tests" ON)
4954
option(BUILD_TF "Build the TensorFlow backend" ON)
5055
option(BUILD_TFLITE "Build the TensorFlow Lite backend" ON)
5156
option(BUILD_ORT "Build the ONNXRuntime backend" ON)
@@ -309,3 +314,10 @@ ENDIF()
309314
IF (NOT ${installAbs} STREQUAL ${CMAKE_SOURCE_DIR}/install-${DEVICE})
310315
INSTALL_SYMLINK(${installAbs} ${CMAKE_SOURCE_DIR}/install-${DEVICE})
311316
ENDIF()
317+
318+
319+
if(PACKAGE_UNIT_TESTS)
320+
enable_testing()
321+
include(GoogleTest)
322+
add_subdirectory(tests/unit)
323+
endif()

0 commit comments

Comments
 (0)