@@ -19,20 +19,12 @@ executors:
19
19
resource_class : small
20
20
21
21
commands :
22
- rust_setup :
23
- description : Set rustc version
24
- steps :
25
- - run :
26
- name : Set rustc version
27
- command : |
28
- rustup default stable
29
- rustup update stable
30
22
print_versions :
31
23
description : Version Info
32
24
steps :
33
25
- run :
34
26
name : Version Info
35
- command : rustc --version; cargo --version; rustup --version
27
+ command : rustup --version
36
28
env_setup :
37
29
description : Environment Setup
38
30
steps :
@@ -44,6 +36,7 @@ commands:
44
36
echo 'export LIBRA_DUMP_LOGS=1' >> $BASH_ENV
45
37
echo 'export CARGO_INCREMENTAL=0' >> $BASH_ENV
46
38
echo 'export CI_TIMEOUT="timeout 40m"' >> $BASH_ENV
39
+ echo 'export RUST_NIGHTLY=nightly-2020-03-18' >> $BASH_ENV
47
40
install_deps :
48
41
steps :
49
42
- run :
@@ -52,14 +45,20 @@ commands:
52
45
sudo apt-get update
53
46
sudo apt-get install -y cmake curl clang llvm
54
47
rustup component add clippy rustfmt
48
+ rustup toolchain install $RUST_NIGHTLY
49
+ - run :
50
+ name : Set cargo Environment
51
+ command : |
52
+ echo 'export CARGO=$(rustup which --toolchain $RUST_NIGHTLY cargo)' >> $BASH_ENV
53
+ echo 'export CARGOFLAGS=-Zfeatures=all' >> $BASH_ENV
55
54
install_code_coverage_deps :
56
55
steps :
57
56
- run :
58
57
name : Install grcov and lcov
59
58
command : |
60
59
sudo apt-get update
61
60
sudo apt-get install lcov
62
- cargo install --force grcov
61
+ $CARGO $CARGOFLAGS install --force grcov
63
62
install_docker_linter :
64
63
steps :
65
64
- run :
@@ -68,11 +67,6 @@ commands:
68
67
export HADOLINT=${HOME}/hadolint
69
68
export HADOLINT_VER=v1.17.4
70
69
curl -sL -o ${HADOLINT} "https://github.com/hadolint/hadolint/releases/download/${HADOLINT_VER}/hadolint-$(uname -s)-$(uname -m)" && chmod 700 ${HADOLINT}
71
- install_rust_nightly_toolchain :
72
- steps :
73
- - run :
74
- name : Install nightly toolchain for features not in beta/stable
75
- command : rustup install nightly
76
70
find_dockerfile_changes :
77
71
steps :
78
72
- run :
@@ -106,7 +100,6 @@ commands:
106
100
build_setup :
107
101
steps :
108
102
- checkout
109
- - rust_setup
110
103
- print_versions
111
104
- env_setup
112
105
- install_deps
@@ -127,7 +120,7 @@ jobs:
127
120
command : ./scripts/git-checks.sh
128
121
- run :
129
122
name : Fetch workspace dependencies over network
130
- command : cargo fetch
123
+ command : $CARGO $CARGOFLAGS fetch
131
124
- save_cargo_package_cache
132
125
- persist_to_workspace :
133
126
root : /home/circleci/project
@@ -148,20 +141,20 @@ jobs:
148
141
- restore_cargo_package_cache
149
142
- run :
150
143
name : cargo lint
151
- command : cargo x lint
144
+ command : $CARGO $CARGOFLAGS x lint
152
145
- run :
153
146
name : cargo clippy
154
- command : cargo xclippy --workspace --all-targets
147
+ command : $CARGO $CARGOFLAGS xclippy --workspace --all-targets
155
148
- run :
156
149
name : cargo fmt
157
- command : cargo xfmt --check
150
+ command : $CARGO $CARGOFLAGS xfmt --check
158
151
- run :
159
152
name : cargo guppy
160
153
command : |
161
- cargo install cargo-guppy \
154
+ $CARGO $CARGOFLAGS install cargo-guppy \
162
155
--git http://github.com/calibra/cargo-guppy \
163
156
--rev 8b2bc45c0cd6323a7a2b8170ddad6d2a5b79047b
164
- [[ -z $(cargo guppy dups --target x86_64-unknown-linux-gnu \
157
+ [[ -z $($CARGO $CARGOFLAGS guppy dups --target x86_64-unknown-linux-gnu \
165
158
--kind directthirdparty) ]]
166
159
build-dev :
167
160
executor : build-executor
@@ -172,19 +165,19 @@ jobs:
172
165
at : /home/circleci/project
173
166
- restore_cargo_package_cache
174
167
- run :
175
- command : RUST_BACKTRACE=1 cargo build -j 16
168
+ command : RUST_BACKTRACE=1 $CARGO $CARGOFLAGS build -j 16
176
169
- run :
177
- command : RUST_BACKTRACE=1 cargo build -j 16 -p libra-swarm
170
+ command : RUST_BACKTRACE=1 $CARGO $CARGOFLAGS build -j 16 -p libra-swarm
178
171
- run :
179
- command : RUST_BACKTRACE=1 cargo build -j 16 -p cluster-test
172
+ command : RUST_BACKTRACE=1 $CARGO $CARGOFLAGS build -j 16 -p cluster-test
180
173
- run :
181
- command : RUST_BACKTRACE=1 cargo build -j 16 -p libra-fuzzer
174
+ command : RUST_BACKTRACE=1 $CARGO $CARGOFLAGS build -j 16 -p libra-fuzzer
182
175
- run :
183
- command : RUST_BACKTRACE=1 cargo build -j 16 -p language_benchmarks
176
+ command : RUST_BACKTRACE=1 $CARGO $CARGOFLAGS build -j 16 -p language_benchmarks
184
177
- run :
185
- command : RUST_BACKTRACE=1 cargo build -j 16 -p cost-synthesis
178
+ command : RUST_BACKTRACE=1 $CARGO $CARGOFLAGS build -j 16 -p cost-synthesis
186
179
- run :
187
- command : RUST_BACKTRACE=1 cargo build -j 16 -p test-generation
180
+ command : RUST_BACKTRACE=1 $CARGO $CARGOFLAGS build -j 16 -p test-generation
188
181
- build_teardown
189
182
build-release :
190
183
executor : build-executor
@@ -196,7 +189,7 @@ jobs:
196
189
- restore_cargo_package_cache
197
190
- run :
198
191
name : Build release
199
- command : RUST_BACKTRACE=1 cargo build -j 16 --release
192
+ command : RUST_BACKTRACE=1 $CARGO $CARGOFLAGS build -j 16 --release
200
193
- build_teardown
201
194
build-e2e-test :
202
195
executor : build-executor
@@ -209,7 +202,7 @@ jobs:
209
202
- run :
210
203
name : Find all e2e tests
211
204
command : |
212
- cargo x test --package testsuite -- --list | grep "::" | \
205
+ $CARGO $CARGOFLAGS x test --package testsuite -- --list | grep "::" | \
213
206
sed 's/: .*$//' > e2e_tests
214
207
cat e2e_tests
215
208
- persist_to_workspace :
@@ -246,7 +239,7 @@ jobs:
246
239
RUST_BACKTRACE=1 $CI_TIMEOUT $libratest $target \
247
240
--test-threads 1 --exact --nocapture
248
241
else
249
- RUST_BACKTRACE=1 $CI_TIMEOUT cargo x test $target \
242
+ RUST_BACKTRACE=1 $CI_TIMEOUT $CARGO $CARGOFLAGS x test $target \
250
243
--package testsuite -- --test-threads 1 --exact --nocapture
251
244
fi
252
245
done
@@ -262,7 +255,7 @@ jobs:
262
255
- run :
263
256
name : Run all unit tests
264
257
command : |
265
- RUST_BACKTRACE=1 $CI_TIMEOUT cargo test \
258
+ RUST_BACKTRACE=1 $CI_TIMEOUT $CARGO $CARGOFLAGS test \
266
259
--all-features \
267
260
--workspace \
268
261
--exclude libra-node \
@@ -281,7 +274,7 @@ jobs:
281
274
name : Run crypto unit tests
282
275
command : |
283
276
cd crypto/crypto && \
284
- RUST_BACKTRACE=1 cargo test \
277
+ RUST_BACKTRACE=1 $CARGO $CARGOFLAGS test \
285
278
--features='std fiat_u64_backend fuzzing' \
286
279
--no-default-features
287
280
run-flaky-unit-test :
@@ -312,16 +305,16 @@ jobs:
312
305
steps :
313
306
- build_setup
314
307
- run :
315
- name : Install Cargo Audit
308
+ name : Install cargo-audit
316
309
command : |
317
- cargo install --force cargo-audit
310
+ $CARGO $CARGOFLAGS install --force cargo-audit
318
311
- run :
319
312
# NOTE ignored advisory rules
320
313
# RUSTSEC-2018-0015 - term
321
314
# RUSTSEC-2019-0031 - spin
322
315
name : Audit crates
323
316
command : |
324
- cargo audit --deny-warnings \
317
+ $CARGO $CARGOFLAGS audit --deny-warnings \
325
318
--ignore RUSTSEC-2018-0015 \
326
319
--ignore RUSTSEC-2019-0031
327
320
- build_teardown
@@ -331,7 +324,6 @@ jobs:
331
324
steps :
332
325
- build_setup
333
326
- install_code_coverage_deps
334
- - install_rust_nightly_toolchain
335
327
- run :
336
328
name : Setup code coverage output
337
329
command : echo "export CODECOV_OUTPUT=codecov" >> $BASH_ENV
0 commit comments