@@ -14,110 +14,85 @@ commands:
14
14
circleci step halt
15
15
fi
16
16
17
- jobs :
17
+ setup-automation :
18
+ steps :
19
+ - run :
20
+ name : Setup automation
21
+ command : |
22
+ git submodule update --init deps/readies
23
+ ./deps/readies/bin/getpy3
18
24
25
+ jobs :
19
26
build :
20
27
docker :
21
- - image : redisfab/rmbuilder:6.0.7-x64-centos7
22
-
28
+ - image : redisfab/rmbuilder:6.0.9-x64-centos7
23
29
steps :
24
30
- checkout
25
-
26
31
- run :
27
32
name : Checkout submodules
28
33
command : git submodule update --init --recursive
29
-
30
34
- run :
31
35
name : Setup automation and install dependencies
32
36
command : |
33
- (mkdir -p deps; cd deps; git clone https://github.com/RedisLabsModules/readies.git)
34
- PIP=1 FORCE=1 ./deps/readies/bin/getpy2
37
+ ./deps/readies/bin/getpy3
35
38
./system-setup.py
36
-
37
39
- run :
38
40
name : Install Redis
39
- command : ./deps/readies/bin/getredis -v 6
40
-
41
+ command : bash -l -c "./deps/readies/bin/getredis -v 6 --force"
41
42
- run :
42
43
name : Install Rust
43
44
command : |
44
- curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > rust.sh
45
- sh rust.sh -y
46
- echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc
47
- source $HOME/.cargo/env
48
- rustc --version
49
- cargo --version
50
- rustup --version
51
-
45
+ ./deps/readies/bin/getrust
46
+ source $HOME/.cargo/env
47
+ rustc --version
48
+ cargo --version
49
+ rustup --version
52
50
- restore_cache :
53
51
keys :
54
52
- v2-dependencies-{{ arch }}-{{ checksum "Cargo.lock" }}
55
53
# fallback to using the latest cache if no exact match is found
56
54
- v2-dependencies-
57
-
58
55
- run :
59
56
name : Check formatting
60
- command : |
61
- source $HOME/.cargo/env
62
- rustfmt --version
63
- cargo fmt -- --check
64
-
57
+ command : bash -l -c "make lint"
65
58
- run :
66
59
name : Build debug
67
- command : |
68
- source $HOME/.cargo/env
69
- cargo build --all --all-targets
70
- mv target/debug/librejson.so target/debug/rejson.so
71
-
72
- - run :
73
- name : Run all tests
74
- command : |
75
- source $HOME/.cargo/env
76
- cargo test --features test --all
77
- python2 ./test/pytest/test.py
78
-
60
+ command : bash -l -c "make build DEBUG=1"
79
61
- run :
80
62
name : Build release
81
- command : |
82
- source $HOME/.cargo/env
83
- cargo build --all --all-targets --release
84
- mv target/release/librejson.so target/release/rejson.so
85
-
63
+ command : bash -l -c make
64
+ - run :
65
+ name : Run all tests
66
+ command : bash -l -c "make pytest"
86
67
- save_cache :
87
68
key : v2-dependencies-{{ arch }}-{{ checksum "Cargo.lock" }}
88
69
paths :
89
70
- " ~/.cargo"
90
71
- " ./target"
91
-
92
72
- early_return_for_forked_pull_requests
93
-
94
73
- run :
95
74
name : Persist Artifacts
96
75
command : |
97
76
mkdir -p workspace/build
98
77
cp target/release/$MODULE_ARTIFACT workspace/
99
78
cp ramp.yml workspace/
100
-
101
79
- persist_to_workspace :
102
80
root : workspace
103
81
paths :
104
82
- ' *.so'
105
83
- ramp.yml
106
84
- build
107
85
108
-
109
86
package_branch :
110
87
docker :
111
- - image : redisfab/rmbuilder:6.0.7 -x64-buster
88
+ - image : redisfab/rmbuilder:6.0.9 -x64-buster
112
89
steps :
113
90
- attach_workspace :
114
91
at : /workspace
115
92
- run :
116
93
name : Package
117
- command : >-
118
- ramp pack -m /workspace/ramp.yml -o
119
- /workspace/build/$PACKAGE_NAME.{os}-{architecture}.$CIRCLE_BRANCH.zip
120
- /workspace/$MODULE_ARTIFACT
94
+ command : |
95
+ ramp pack -m /workspace/ramp.yml -o /workspace/build/$PACKAGE_NAME.{os}-{architecture}.$CIRCLE_BRANCH.zip /workspace/$MODULE_ARTIFACT
121
96
- persist_to_workspace :
122
97
root : /workspace
123
98
paths :
@@ -127,22 +102,18 @@ jobs:
127
102
128
103
package_release :
129
104
docker :
130
- - image : redisfab/rmbuilder:6.0.7 -x64-buster
105
+ - image : redisfab/rmbuilder:6.0.9 -x64-buster
131
106
steps :
132
107
- attach_workspace :
133
108
at : /workspace
134
109
- run :
135
110
name : Package
136
- command : >-
137
- ramp pack -m /workspace/ramp.yml -o
138
- /workspace/build/$PACKAGE_NAME.{os}-{architecture}.{semantic_version}.zip
139
- /workspace/$MODULE_ARTIFACT
111
+ command : |
112
+ ramp pack -m /workspace/ramp.yml -o /workspace/build/$PACKAGE_NAME.{os}-{architecture}.{semantic_version}.zip /workspace/$MODULE_ARTIFACT
140
113
- run :
141
114
name : Package
142
- command : >-
143
- ramp pack -m /workspace/ramp.yml -o
144
- /workspace/build/$PACKAGE_NAME.{os}-{architecture}.latest.zip
145
- /workspace/$MODULE_ARTIFACT
115
+ command : |
116
+ ramp pack -m /workspace/ramp.yml -o /workspace/build/$PACKAGE_NAME.{os}-{architecture}.latest.zip /workspace/$MODULE_ARTIFACT
146
117
- persist_to_workspace :
147
118
root : /workspace
148
119
paths :
@@ -152,7 +123,7 @@ jobs:
152
123
153
124
deploy_branch :
154
125
docker :
155
- - image : redisfab/rmbuilder:6.0.7 -x64-buster
126
+ - image : redisfab/rmbuilder:6.0.9 -x64-buster
156
127
steps :
157
128
- attach_workspace :
158
129
at : /workspace
@@ -163,7 +134,7 @@ jobs:
163
134
164
135
deploy_release :
165
136
docker :
166
- - image : redisfab/rmbuilder:6.0.7 -x64-buster
137
+ - image : redisfab/rmbuilder:6.0.9 -x64-buster
167
138
steps :
168
139
- attach_workspace :
169
140
at : /workspace
@@ -172,6 +143,26 @@ jobs:
172
143
command : |
173
144
aws s3 cp /workspace/build/ s3://redismodules/$PACKAGE_NAME/ --acl public-read --recursive --exclude "*" --include "*.zip"
174
145
146
+ release_automation :
147
+ docker :
148
+ - image : redisfab/rmbuilder:6.0.9-x64-buster
149
+ steps :
150
+ - checkout
151
+ - setup-automation
152
+ - run :
153
+ name : Run QA Automation
154
+ command : MODULE_VERSION=$CIRCLE_TAG VERBOSE=1 TEST=release ./tests/qa/run
155
+
156
+ nightly_automation :
157
+ docker :
158
+ - image : redisfab/rmbuilder:6.0.9-x64-buster
159
+ steps :
160
+ - checkout
161
+ - setup-automation
162
+ - run :
163
+ name : Run QA Automation
164
+ command : MODULE_VERSION=$CIRCLE_BRANCH VERBOSE=1 TEST=nightly QUICK=1 ./tests/qa/run
165
+
175
166
176
167
on-any-branch : &on-any-branch
177
168
filters :
@@ -191,6 +182,26 @@ on-master: &on-master
191
182
filters :
192
183
branches :
193
184
only : master
185
+ tags :
186
+ ignore : /.*/
187
+
188
+ on-integ-branch : &on-integ-branch
189
+ filters :
190
+ branches :
191
+ only :
192
+ - master
193
+ - /^\d+\.\d+.*$/
194
+ tags :
195
+ ignore : /.*/
196
+
197
+ not-on-integ-branch : ¬-on-integ-branch
198
+ filters :
199
+ branches :
200
+ ignore :
201
+ - master
202
+ - /^\d+\.\d+.*$/
203
+ tags :
204
+ ignore : /.*/
194
205
195
206
on-version-tags : &on-version-tags
196
207
filters :
@@ -199,11 +210,12 @@ on-version-tags: &on-version-tags
199
210
tags :
200
211
only : /^v[0-9].*/
201
212
202
- on-master -and-version-tags : &on-master -and-version-tags
213
+ on-integ -and-version-tags : &on-integ -and-version-tags
203
214
filters :
204
215
branches :
205
216
only :
206
217
- master
218
+ - /^\d+\.\d+.*$/
207
219
tags :
208
220
only : /^v[0-9].*/
209
221
@@ -215,18 +227,34 @@ workflows:
215
227
- build :
216
228
<< : *on-any-branch
217
229
- package_branch :
218
- << : *on-master
230
+ << : *on-integ-branch
219
231
requires :
220
232
- build
221
233
- package_release :
222
234
<< : *on-version-tags
223
235
requires :
224
236
- build
225
237
- deploy_branch :
226
- << : *on-master
238
+ context : common
239
+ << : *on-integ-branch
227
240
requires :
228
241
- package_branch
229
242
- deploy_release :
243
+ context : common
230
244
<< : *on-version-tags
231
245
requires :
232
246
- package_release
247
+ - release_automation :
248
+ << : *on-version-tags
249
+ requires :
250
+ - deploy_release
251
+
252
+ nightly :
253
+ triggers :
254
+ - schedule :
255
+ cron : " 07 20 * * *"
256
+ filters :
257
+ branches :
258
+ only : master
259
+ jobs :
260
+ - nightly_automation
0 commit comments