Skip to content

Commit e650049

Browse files
authored
[1.2] CircleCI: added QA automation (#660) (#665)
* CircleCI: added QA automation (#660) (cherry picked from commit 5045c12) * CircleCI fixes (#667) * More CircleCI fixes (#668) * Updated readies
1 parent f930971 commit e650049

File tree

11 files changed

+280
-82
lines changed

11 files changed

+280
-82
lines changed

.circleci/config.yml

Lines changed: 98 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -35,29 +35,53 @@ commands:
3535
- setup_remote_docker:
3636
docker_layer_caching: true
3737

38+
relocate-docker-storage:
39+
steps:
40+
- run:
41+
name: Relocate docker overlay2 dir
42+
command: |
43+
sudo systemctl stop docker
44+
sudo mkdir -p /var2/lib/docker
45+
sudo mv /var/lib/docker/overlay2 /var2/lib/docker
46+
sudo mkdir /var/lib/docker/overlay2
47+
sudo mount --bind /var2/lib/docker/overlay2 /var/lib/docker/overlay2
48+
sudo systemctl start docker
49+
3850
setup-automation:
3951
steps:
4052
- run:
4153
name: Setup automation
4254
command: |
55+
git submodule update --init opt/readies
4356
./opt/readies/bin/getpy3
57+
58+
setup-build-system:
59+
steps:
60+
- setup-automation
61+
- run:
62+
name: Setup build system
63+
command: |
4464
./opt/system-setup.py
4565
66+
checkout-all:
67+
steps:
68+
- checkout
69+
- run:
70+
name: Checkout submodules
71+
command: git submodule update --init --recursive
72+
4673
build-steps:
4774
parameters:
4875
platform:
4976
type: string
5077
steps:
5178
- abort_for_docs
52-
- checkout
53-
- run:
54-
name: Submodule checkout
55-
command: git submodule update --init --recursive
79+
- checkout-all
5680
- restore_cache:
5781
keys:
5882
- v1-dependencies-{{ checksum "get_deps.sh" }}
5983
# If no exact match is found will get dependencies from source
60-
- setup-automation
84+
- setup-build-system
6185
- run:
6286
name: Install dependencies
6387
command: |
@@ -97,29 +121,16 @@ commands:
97121
platforms-build-steps:
98122
steps:
99123
- abort_for_docs
100-
- checkout
101-
- run:
102-
name: Relocate docker overlay2 dir
103-
command: |
104-
sudo systemctl stop docker
105-
sudo mkdir -p /var2/lib/docker
106-
sudo mv /var/lib/docker/overlay2 /var2/lib/docker
107-
sudo mkdir /var/lib/docker/overlay2
108-
sudo mount --bind /var2/lib/docker/overlay2 /var/lib/docker/overlay2
109-
sudo systemctl start docker
110-
- run:
111-
name: Setup
112-
command: |
113-
git submodule update --init --recursive
114-
./opt/readies/bin/getpy3
124+
- checkout-all
125+
- relocate-docker-storage
126+
- setup-automation
115127
- run:
116128
name: Build for platform
117129
command: |
118-
docker login -u redisfab -p $DOCKER_REDISFAB_PWD
119130
pushd opt/build/docker
120131
for osnick in bionic xenial; do
121-
make CPU=1 OSNICK=$osnick ARTIFACTS=1 VERBOSE=1 build publish
122-
make GPU=1 OSNICK=$osnick ARTIFACTS=1 VERBOSE=1 build publish
132+
make CPU=1 OSNICK=$osnick ARTIFACTS=1 VERBOSE=1 build
133+
make GPU=1 OSNICK=$osnick ARTIFACTS=1 VERBOSE=1 build
123134
done
124135
popd > /dev/null
125136
logstar=bin/artifacts/tests-logs-cpu.tgz
@@ -128,6 +139,16 @@ commands:
128139
if [[ -e $logstar ]]; then tar -C $logsdir -xzf $logstar; fi
129140
(cd bin/artifacts; tar -cf snapshots.tar snapshots/)
130141
no_output_timeout: 40m
142+
- early_return_for_forked_pull_requests
143+
- run:
144+
name: Build for platform (publish)
145+
command: |
146+
docker login -u redisfab -p $DOCKER_REDISFAB_PWD
147+
cd opt/build/docker
148+
for osnick in bionic xenial; do
149+
make CPU=1 OSNICK=$osnick VERBOSE=1 publish
150+
make GPU=1 OSNICK=$osnick VERBOSE=1 publish
151+
done
131152
- persist_to_workspace:
132153
root: bin/
133154
paths:
@@ -155,19 +176,16 @@ jobs:
155176
docker:
156177
- image: redislabsmodules/llvm-toolset:latest
157178
steps:
158-
- checkout
159-
- run:
160-
name: Submodule checkout
161-
command: git submodule update --init --recursive
162-
- setup-automation
179+
- checkout-all
180+
- setup-build-system
163181
- run:
164182
name: lint
165183
command: |
166184
make -C opt lint
167185
168186
build-and-test:
169187
docker:
170-
- image: redisfab/rmbuilder:6.0.9-x64-buster
188+
- image: redisfab/rmbuilder:6.2.1-x64-buster
171189
steps:
172190
- build-steps:
173191
platform: debian
@@ -183,18 +201,15 @@ jobs:
183201

184202
coverage:
185203
docker:
186-
- image: redisfab/rmbuilder:6.0.9-x64-buster
204+
- image: redisfab/rmbuilder:6.2.1-x64-buster
187205
steps:
188206
- abort_for_docs
189-
- checkout
190-
- run:
191-
name: Submodule checkout
192-
command: git submodule update --init --recursive
207+
- checkout-all
193208
- restore_cache:
194209
keys:
195210
- build-dependencies-{{ checksum "get_deps.sh" }}
196211
# If no exact match is found will get dependencies from source
197-
- setup-automation
212+
- setup-build-system
198213
- run:
199214
name: Install dependencies
200215
command: |
@@ -217,22 +232,19 @@ jobs:
217232
type: string
218233
default: "CLUSTER=0 AOF=0"
219234
docker:
220-
- image: redisfab/rmbuilder:6.0.9-x64-buster
235+
- image: redisfab/rmbuilder:6.2.1-x64-buster
221236
steps:
222237
- abort_for_docs
223-
- checkout
224-
- run:
225-
name: Submodule checkout
226-
command: git submodule update --init --recursive
238+
- checkout-all
227239
- restore_cache:
228240
keys:
229241
- build-dependencies-{{ checksum "get_deps.sh" }}
230242
# If no exact match is found will get dependencies from source
231-
- setup-automation
243+
- setup-build-system
232244
- run:
233245
name: Install dependencies
234246
command: |
235-
./opt/readies/bin/getredis -v 6 --valgrind --force
247+
./opt/readies/bin/getredis -v 6.0 --valgrind --force
236248
./get_deps.sh cpu
237249
- run:
238250
name: Build for valgrind
@@ -262,10 +274,7 @@ jobs:
262274
image: cimg/base:2020.01
263275
steps:
264276
- abort_for_docs
265-
- checkout
266-
- run:
267-
name: Submodule checkout
268-
command: git submodule update --init --recursive
277+
- checkout-all
269278
- run:
270279
name: Checkout LFS
271280
command: |
@@ -294,10 +303,7 @@ jobs:
294303
image: ubuntu-1604-cuda-11.1:202012-01
295304
steps:
296305
- abort_for_docs
297-
- checkout
298-
- run:
299-
name: Submodule checkout
300-
command: git submodule update --init --recursive
306+
- checkout-all
301307
- run:
302308
name: Relocate docker overlay2 dir
303309
command: |
@@ -325,7 +331,7 @@ jobs:
325331
location:
326332
type: string
327333
docker:
328-
- image: redisfab/rmbuilder:6.0.9-x64-buster
334+
- image: redisfab/rmbuilder:6.2.1-x64-buster
329335
steps:
330336
- abort_for_docs
331337
- early_return_for_forked_pull_requests
@@ -342,7 +348,7 @@ jobs:
342348
343349
deploy-snapshot:
344350
docker:
345-
- image: redisfab/rmbuilder:6.0.9-x64-buster
351+
- image: redisfab/rmbuilder:6.2.1-x64-buster
346352
steps:
347353
- abort_for_docs
348354
- early_return_for_forked_pull_requests
@@ -365,7 +371,7 @@ jobs:
365371
366372
deploy-release:
367373
docker:
368-
- image: redisfab/rmbuilder:6.0.9-x64-buster
374+
- image: redisfab/rmbuilder:6.2.1-x64-buster
369375
steps:
370376
- abort_for_docs
371377
- early_return_for_forked_pull_requests
@@ -380,6 +386,26 @@ jobs:
380386
aws s3 cp --no-progress $f s3://redismodules/$PACKAGE_NAME/ --acl public-read
381387
done
382388
389+
release-automation:
390+
docker:
391+
- image: redisfab/rmbuilder:6.2.1-x64-buster
392+
steps:
393+
- checkout
394+
- setup-automation
395+
- run:
396+
name: Run QA Automation
397+
command: MODULE_VERSION=$CIRCLE_TAG VERBOSE=1 TEST=release ./tests/qa/run
398+
399+
nightly-automation:
400+
docker:
401+
- image: redisfab/rmbuilder:6.2.1-x64-buster
402+
steps:
403+
- checkout
404+
- setup-automation
405+
- run:
406+
name: Run QA Automation
407+
command: MODULE_VERSION=$CIRCLE_BRANCH VERBOSE=1 TEST=nightly QUICK=1 ./tests/qa/run
408+
383409

384410
on-any-branch: &on-any-branch
385411
filters:
@@ -408,6 +434,17 @@ on-integ-branch: &on-integ-branch
408434
only:
409435
- master
410436
- /^\d+\.\d+.*$/
437+
- /^feature-.*$/
438+
tags:
439+
ignore: /.*/
440+
441+
not-on-integ-branch: &not-on-integ-branch
442+
filters:
443+
branches:
444+
ignore:
445+
- master
446+
- /^\d+\.\d+.*$/
447+
- /^feature-.*$/
411448
tags:
412449
ignore: /.*/
413450

@@ -424,6 +461,7 @@ on-integ-and-version-tags: &on-integ-and-version-tags
424461
only:
425462
- master
426463
- /^\d+\.\d+.*$/
464+
- /^feature-.*$/
427465
tags:
428466
only: /^v[0-9].*/
429467

@@ -493,6 +531,11 @@ workflows:
493531
context: common
494532
<<: *after-platform-builds
495533
<<: *on-version-tags
534+
- release-automation:
535+
context: common
536+
<<: *on-version-tags
537+
requires:
538+
- deploy-release
496539

497540
nightly:
498541
triggers:
@@ -504,3 +547,5 @@ workflows:
504547
jobs:
505548
- build-macos:
506549
<<: *never # temporarily disabled
550+
- nightly-automation:
551+
context: common

Dockerfile

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,20 +40,18 @@ RUN if [ "$DEPS_ARGS" = "" ]; then ./get_deps.sh cpu; else env $DEPS_ARGS ./get_
4040

4141
ARG BUILD_ARGS=""
4242
ADD ./ /build
43-
RUN bash -c "set -e ;\
44-
. ./opt/readies/bin/sourced ./profile.d ;\
45-
make -C opt build $BUILD_ARGS SHOW=1"
43+
RUN bash -l -c "make -C opt build $BUILD_ARGS SHOW=1"
4644

4745
ARG PACK
4846
ARG TEST
4947

5048
RUN mkdir -p bin/artifacts
5149
RUN set -e ;\
52-
if [ "$PACK" = "1" ]; then make -C opt pack; fi
50+
if [ "$PACK" = "1" ]; then bash -l -c "make -C opt pack"; fi
5351

5452
RUN set -e ;\
5553
if [ "$TEST" = "1" ]; then \
56-
TEST= make -C opt test $BUILD_ARGS NO_LFS=1 ;\
54+
bash -l -c "TEST= make -C opt test $BUILD_ARGS NO_LFS=1" ;\
5755
if [[ -d test/logs ]]; then \
5856
tar -C test/logs -czf bin/artifacts/test-logs-cpu.tgz . ;\
5957
fi ;\

Dockerfile.gpu

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -52,23 +52,21 @@ RUN if [ "$DEPS_ARGS" = "" ]; then ./get_deps.sh gpu; else env $DEPS_ARGS ./get_
5252

5353
ARG BUILD_ARGS=""
5454
ADD ./ /build
55-
RUN bash -c "set -e ;\
56-
. ./opt/readies/bin/sourced ./profile.d ;\
57-
make -C opt build GPU=1 $BUILD_ARGS SHOW=1"
55+
RUN bash -l -c "make -C opt build GPU=1 $BUILD_ARGS SHOW=1"
5856

5957
ARG PACK
6058
ARG TEST
6159

6260
RUN mkdir -p bin/artifacts
6361
RUN set -e ;\
64-
if [ "$PACK" = "1" ]; then make -C opt pack GPU=1; fi
62+
if [ "$PACK" = "1" ]; then bash -l -c "make -C opt pack GPU=1"; fi
6563

6664
RUN set -e ;\
6765
if [ "$TEST" = "1" ]; then \
68-
TEST= make -C opt test GPU=1 $BUILD_ARGS NO_LFS=1 ;\
69-
if [[ -d test/logs ]]; then \
70-
tar -C test/logs -czf bin/artifacts/test-logs-gpu.tgz . ;\
71-
fi ;\
66+
bash -l -c "TEST= make -C opt test GPU=1 $BUILD_ARGS NO_LFS=1" ;\
67+
if [[ -d test/logs ]]; then \
68+
tar -C test/logs -czf bin/artifacts/test-logs-gpu.tgz . ;\
69+
fi ;\
7270
fi
7371

7472
#----------------------------------------------------------------------------------------------

Dockerfile.gpu-test

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,14 @@ ARG BUILD_ARGS=""
5757
ADD ./ /build
5858
RUN set -e ;\
5959
. venv/bin/activate ;\
60-
. ./opt/readies/bin/sourced ./profile.d ;\
61-
make -C opt build GPU=1 $BUILD_ARGS SHOW=1
60+
bash -l -c "make -C opt build GPU=1 $BUILD_ARGS SHOW=1"
6261

6362
ARG PACK
6463

6564
RUN set -e ;\
6665
if [[ $PACK == 1 ]]; then \
67-
. venv/bin/activate ;\
68-
make -C opt pack GPU=1 VERBOSE=1 ;\
66+
. venv/bin/activate ;\
67+
bash -l -c "make -C opt pack GPU=1 VERBOSE=1" ;\
6968
fi
7069

7170
RUN git remote set-url origin https://github.com/RedisAI/RedisAI

opt/pack.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ RAMP_PROG="python3 -m RAMP.ramp"
5050
BINDIR=$(realpath $BINDIR)
5151
INSTALL_DIR=$(realpath $INSTALL_DIR)
5252

53-
. $READIES/enable-utf8
53+
$READIES/enable-utf8
54+
source /etc/profile.d/utf8.sh
5455

5556
export ARCH=$($READIES/platform --arch)
5657
export OS=$($READIES/platform --os)

0 commit comments

Comments
 (0)