@@ -43,6 +43,19 @@ commands:
43
43
circleci step halt
44
44
fi
45
45
46
+ only_run_if_forked_pull_request :
47
+ description : >-
48
+ If this build is from an internal (i.e not a forked) pull request, then end early.
49
+ This is required when we want different behaviours for external, versus internal PRs.
50
+ steps :
51
+ - run :
52
+ name : Return early if not a forked pull request
53
+ command : |
54
+ if [[ ! -n "$CIRCLE_PR_NUMBER" ]]; then
55
+ echo "Not a forked PR so marking as successfull and exiting"
56
+ circleci step halt
57
+ fi
58
+
46
59
relocate-docker-storage :
47
60
steps :
48
61
- run :
@@ -127,6 +140,64 @@ commands:
127
140
- store_artifacts :
128
141
path : tests/logs
129
142
143
+ valgrind-general-steps :
144
+ parameters :
145
+ test_args :
146
+ type : string
147
+ default : " CLUSTER=0 AOF=0"
148
+ steps :
149
+ - abort_for_docs
150
+ - abort_for_noci
151
+ - checkout-all
152
+ - restore_cache :
153
+ keys :
154
+ - build-dependencies-{{ checksum "get_deps.sh" }}
155
+ # If no exact match is found will get dependencies from source
156
+ - setup-build-system
157
+ - run :
158
+ name : Install dependencies
159
+ command : |
160
+ ./opt/readies/bin/getredis -v 6.0 --valgrind --force
161
+ ./get_deps.sh cpu
162
+ - run :
163
+ name : Build for valgrind
164
+ command : |
165
+ make -C opt all VALGRIND=1 SHOW=1
166
+ - run :
167
+ name : Test with valgrind
168
+ command : |
169
+ make -C opt test VALGRIND=1 <<parameters.test_args>>
170
+ no_output_timeout : 120m
171
+
172
+ build-and-test-gpu-steps :
173
+ steps :
174
+ - abort_for_docs
175
+ - abort_for_noci
176
+ - checkout-all
177
+ - run :
178
+ name : Relocate docker overlay2 dir
179
+ command : |
180
+ sudo systemctl stop docker
181
+ sudo mkdir -p /var2/lib/docker
182
+ sudo mv /var/lib/docker/overlay2 /var2/lib/docker
183
+ sudo mkdir /var/lib/docker/overlay2
184
+ sudo mount --bind /var2/lib/docker/overlay2 /var/lib/docker/overlay2
185
+ sudo systemctl start docker
186
+ - run :
187
+ name : Build
188
+ command : |
189
+ docker build -f Dockerfile.gpu-test --no-cache -t redisai-gpu:latest-x64-bionic-test .
190
+ - run :
191
+ name : Test
192
+ command : |
193
+ mkdir -p $HOME/tests
194
+ docker run --gpus all -v $HOME/tests:/build/tests/logs -it --rm redisai-gpu:latest-x64-bionic-test
195
+ no_output_timeout : 40m
196
+ - store_artifacts :
197
+ path : tests/logs
198
+
199
+
200
+
130
201
jobs :
131
202
lint :
132
203
docker :
@@ -218,7 +289,7 @@ jobs:
218
289
parameters :
219
290
test_args :
220
291
type : string
221
- default : " CLUSTER=0 AOF=0 "
292
+ default : " CLUSTER=0"
222
293
docker :
223
294
- image : redisfab/rmbuilder:6.2.1-x64-buster
224
295
steps :
@@ -245,37 +316,18 @@ jobs:
245
316
make -C opt test VALGRIND=1 <<parameters.test_args>>
246
317
no_output_timeout : 120m
247
318
319
+ valgrind-general-for-forked-prs :
320
+ docker :
321
+ - image : redisfab/rmbuilder:6.2.1-x64-buster
322
+ steps :
323
+ - only_run_if_forked_pull_request
324
+ - valgrind-general-steps
325
+
248
326
valgrind-general :
249
- parameters :
250
- test_args :
251
- type : string
252
- default : " CLUSTER=0 AOF=0"
253
327
docker :
254
328
- image : redisfab/rmbuilder:6.2.1-x64-buster
255
329
steps :
256
- - abort_for_docs
257
- - abort_for_noci
258
- - early_return_for_forked_pull_requests
259
- - checkout-all
260
- - restore_cache :
261
- keys :
262
- - build-dependencies-{{ checksum "get_deps.sh" }}
263
- # If no exact match is found will get dependencies from source
264
- - setup-build-system
265
- - run :
266
- name : Install dependencies
267
- command : |
268
- ./opt/readies/bin/getredis -v 6.0 --valgrind --force
269
- ./get_deps.sh cpu
270
- - run :
271
- name : Build for valgrind
272
- command : |
273
- make -C opt all VALGRIND=1 SHOW=1
274
- - run :
275
- name : Test with valgrind
276
- command : |
277
- make -C opt test VALGRIND=1 <<parameters.test_args>>
278
- no_output_timeout : 120m
330
+ - valgrind-general-steps
279
331
280
332
# build-macos:
281
333
# macos:
@@ -316,6 +368,8 @@ jobs:
316
368
# make build
317
369
# sudo make publish
318
370
371
+ # internal PRs execute build-and-test either in a workflow or
372
+ # via a github action trigger
319
373
build-and-test-gpu :
320
374
machine :
321
375
enabled : true
@@ -324,30 +378,20 @@ jobs:
324
378
image : ubuntu-1604-cuda-11.1:202012-01
325
379
326
380
steps :
327
- - abort_for_docs
328
- - abort_for_noci
329
- - checkout-all
330
- - run :
331
- name : Relocate docker overlay2 dir
332
- command : |
333
- sudo systemctl stop docker
334
- sudo mkdir -p /var2/lib/docker
335
- sudo mv /var/lib/docker/overlay2 /var2/lib/docker
336
- sudo mkdir /var/lib/docker/overlay2
337
- sudo mount --bind /var2/lib/docker/overlay2 /var/lib/docker/overlay2
338
- sudo systemctl start docker
339
- - run :
340
- name : Build
341
- command : |
342
- docker build -f Dockerfile.gpu-test --no-cache -t redisai-gpu:latest-x64-bionic-test .
343
- - run :
344
- name : Test
345
- command : |
346
- mkdir -p $HOME/tests
347
- docker run --gpus all -v $HOME/tests:/build/tests/logs -it --rm redisai-gpu:latest-x64-bionic-test
348
- no_output_timeout : 40m
349
- - store_artifacts :
350
- path : tests/logs
381
+ - build-and-test-gpu-steps
382
+
383
+ # in the case of a forked PR, we want to run the GPU steps
384
+ # hence we check if we're forked, explicitly
385
+ build-and-test-gpu-for-forked-prs :
386
+ machine :
387
+ enabled : true
388
+ docker_layer_caching : true
389
+ resource_class : gpu.nvidia.small
390
+ image : ubuntu-1604-cuda-11.1:202012-01
391
+
392
+ steps :
393
+ - only_run_if_forked_pull_request
394
+ - build-and-test-gpu-steps
351
395
352
396
deploy-artifacts :
353
397
parameters :
@@ -414,16 +458,20 @@ jobs:
414
458
- run :
415
459
name : Run QA Automation
416
460
command : MODULE_VERSION=$CIRCLE_TAG VERBOSE=1 TEST=release ./tests/qa/run
417
-
418
- nightly-automation :
419
- docker :
420
- - image : redisfab/rmbuilder:6.2.1-x64-buster
421
- steps :
422
- - checkout
423
- - setup-automation
424
461
- run :
425
- name : Run QA Automation
426
- command : MODULE_VERSION=$CIRCLE_BRANCH VERBOSE=1 TEST=nightly QUICK=1 ./tests/qa/run
462
+ name : Run QA Automation (AILite)
463
+ command : MODULE_VERSION=$CIRCLE_TAG VERBOSE=1 TEST=release VARIANT=lite ./tests/qa/run
464
+
465
+
466
+ # nightly-automation:
467
+ # docker:
468
+ # - image: redisfab/rmbuilder:6.2.1-x64-buster
469
+ # steps:
470
+ # - checkout
471
+ # - setup-automation
472
+ # - run:
473
+ # name: Run QA Automation
474
+ # command: MODULE_VERSION=$CIRCLE_BRANCH VERBOSE=1 TEST=nightly QUICK=1 ./tests/qa/run
427
475
428
476
429
477
on-any-branch : &on-any-branch
@@ -512,6 +560,12 @@ workflows:
512
560
- build-and-test :
513
561
<< : *on-any-branch
514
562
<< : *after-linter
563
+ - build-and-test-gpu :
564
+ << : *on-integ-branch
565
+ << : *after-linter
566
+ - build-and-test-gpu-for-forked-prs :
567
+ << : *on-any-branch
568
+ << : *after-linter
515
569
- platforms-build :
516
570
<< : *after-build-and-test
517
571
<< : *on-master-version-tags-and-dockertests
@@ -532,16 +586,11 @@ workflows:
532
586
<< : *after-linter
533
587
- valgrind :
534
588
name : valgrind-cluster
535
- test_args : GEN=0 AOF=0
589
+ test_args : GEN=0
536
590
<< : *on-integ-branch
537
591
<< : *after-linter
538
- - valgrind :
539
- name : valgrind-aof
540
- test_args : GEN=0 CLUSTER=0
541
- << : *on-integ-branch
542
- << : *after-linter
543
- - build-and-test-gpu :
544
- << : *on-integ-branch
592
+ - valgrind-general-for-forked-prs :
593
+ << : *on-any-branch
545
594
<< : *after-linter
546
595
- deploy-snapshot :
547
596
context : common
@@ -557,15 +606,15 @@ workflows:
557
606
requires :
558
607
- deploy-release
559
608
560
- nightly :
561
- triggers :
562
- - schedule :
563
- cron : " 20 17 * * *"
564
- filters :
565
- branches :
566
- only : master
567
- jobs :
609
+ # nightly:
610
+ # triggers:
611
+ # - schedule:
612
+ # cron: "20 17 * * *"
613
+ # filters:
614
+ # branches:
615
+ # only: master
616
+ # jobs:
568
617
# - build-macos:
569
618
# <<: *never # temporarily disabled
570
- - nightly-automation :
571
- context : common
619
+ # - nightly-automation:
620
+ # context: common
0 commit comments