@@ -15,14 +15,6 @@ executors:
15
15
resource_class : small
16
16
17
17
commands :
18
- rust_setup :
19
- description : Set rustc version
20
- steps :
21
- - run :
22
- name : Set rustc version
23
- command : |
24
- rustup default stable
25
- rustup update stable
26
18
print_versions :
27
19
description : Version Info
28
20
steps :
@@ -32,6 +24,10 @@ commands:
32
24
env_setup :
33
25
description : Environment Setup
34
26
steps :
27
+ - run :
28
+ name : Set RUST_NIGHTLY
29
+ command : |
30
+ echo 'export RUST_NIGHTLY=nightly-2020-03-18' >> $BASH_ENV
35
31
- run :
36
32
name : Setup Env
37
33
command : |
@@ -40,6 +36,8 @@ commands:
40
36
echo 'export LIBRA_DUMP_LOGS=1' >> $BASH_ENV
41
37
echo 'export CARGO_INCREMENTAL=0' >> $BASH_ENV
42
38
echo 'export CI_TIMEOUT="timeout 40m"' >> $BASH_ENV
39
+ echo 'export CARGO=$(rustup which --toolchain $RUST_NIGHTLY cargo)' >> $BASH_ENV
40
+ echo 'export CARGOFLAGS=-Zfeatures=all' >> $BASH_ENV
43
41
install_deps :
44
42
steps :
45
43
- run :
@@ -48,14 +46,15 @@ commands:
48
46
sudo apt-get update
49
47
sudo apt-get install -y cmake curl clang llvm
50
48
rustup component add clippy rustfmt
49
+ rustup toolchain install nightly
51
50
install_code_coverage_deps :
52
51
steps :
53
52
- run :
54
53
name : Install grcov and lcov
55
54
command : |
56
55
sudo apt-get update
57
56
sudo apt-get install lcov
58
- cargo install --force grcov
57
+ $(CARGO) install --force grcov
59
58
install_docker_linter :
60
59
steps :
61
60
- run :
@@ -64,11 +63,6 @@ commands:
64
63
export HADOLINT=${HOME}/hadolint
65
64
export HADOLINT_VER=v1.17.4
66
65
curl -sL -o ${HADOLINT} "https://github.com/hadolint/hadolint/releases/download/${HADOLINT_VER}/hadolint-$(uname -s)-$(uname -m)" && chmod 700 ${HADOLINT}
67
- install_rust_nightly_toolchain :
68
- steps :
69
- - run :
70
- name : Install nightly toolchain for features not in beta/stable
71
- command : rustup install nightly
72
66
find_dockerfile_changes :
73
67
steps :
74
68
- run :
@@ -82,7 +76,6 @@ commands:
82
76
build_setup :
83
77
steps :
84
78
- checkout
85
- - rust_setup
86
79
- print_versions
87
80
- env_setup
88
81
- install_deps
@@ -104,37 +97,37 @@ jobs:
104
97
- run :
105
98
name : Linting
106
99
command : |
107
- [[ $CIRCLE_NODE_INDEX =~ [1234] ]] || cargo x lint
108
- [[ $CIRCLE_NODE_INDEX =~ [1234] ]] || cargo xclippy --workspace --all-targets
109
- [[ $CIRCLE_NODE_INDEX =~ [1234] ]] || cargo xfmt --check
110
- [[ $CIRCLE_NODE_INDEX =~ [1234] ]] || cargo install cargo-guppy --git http://github.com/calibra/cargo-guppy --rev 8b2bc45c0cd6323a7a2b8170ddad6d2a5b79047b
111
- [[ $CIRCLE_NODE_INDEX =~ [1234] ]] || [[ -z $(cargo guppy dups --target x86_64-unknown-linux-gnu --kind directthirdparty) ]]
100
+ [[ $CIRCLE_NODE_INDEX =~ [1234] ]] || $CARGO $CARGOFLAGS x lint
101
+ [[ $CIRCLE_NODE_INDEX =~ [1234] ]] || $CARGO $CARGOFLAGS xclippy --workspace --all-targets
102
+ [[ $CIRCLE_NODE_INDEX =~ [1234] ]] || $CARGO $CARGOFLAGS xfmt --check
103
+ [[ $CIRCLE_NODE_INDEX =~ [1234] ]] || $CARGO $CARGOFLAGS install cargo-guppy --git http://github.com/calibra/cargo-guppy --rev 8b2bc45c0cd6323a7a2b8170ddad6d2a5b79047b
104
+ [[ $CIRCLE_NODE_INDEX =~ [1234] ]] || [[ -z $($CARGO $CARGOFLAGS guppy dups --target x86_64-unknown-linux-gnu --kind directthirdparty) ]]
112
105
- run :
113
106
name : Build Release
114
107
command : |
115
- [[ $CIRCLE_NODE_INDEX =~ [0234] ]] || RUST_BACKTRACE=1 cargo build -j 16 --release
108
+ [[ $CIRCLE_NODE_INDEX =~ [0234] ]] || RUST_BACKTRACE=1 $CARGO $CARGOFLAGS build -j 16 --release
116
109
- run :
117
110
name : Build Dev
118
111
command : |
119
- [[ $CIRCLE_NODE_INDEX =~ [0124] ]] || RUST_BACKTRACE=1 cargo build -j 16
120
- [[ $CIRCLE_NODE_INDEX =~ [0124] ]] || RUST_BACKTRACE=1 cargo build -j 16 -p libra-swarm
121
- [[ $CIRCLE_NODE_INDEX =~ [0124] ]] || RUST_BACKTRACE=1 cargo build -j 16 -p cluster-test
122
- [[ $CIRCLE_NODE_INDEX =~ [0124] ]] || RUST_BACKTRACE=1 cargo build -j 16 -p libra-fuzzer
123
- [[ $CIRCLE_NODE_INDEX =~ [0124] ]] || RUST_BACKTRACE=1 cargo build -j 16 -p language_benchmarks
124
- [[ $CIRCLE_NODE_INDEX =~ [0124] ]] || RUST_BACKTRACE=1 cargo build -j 16 -p cost-synthesis
125
- [[ $CIRCLE_NODE_INDEX =~ [0124] ]] || RUST_BACKTRACE=1 cargo build -j 16 -p test-generation
112
+ [[ $CIRCLE_NODE_INDEX =~ [0124] ]] || RUST_BACKTRACE=1 $CARGO $CARGOFLAGS build -j 16
113
+ [[ $CIRCLE_NODE_INDEX =~ [0124] ]] || RUST_BACKTRACE=1 $CARGO $CARGOFLAGS build -j 16 -p libra-swarm
114
+ [[ $CIRCLE_NODE_INDEX =~ [0124] ]] || RUST_BACKTRACE=1 $CARGO $CARGOFLAGS build -j 16 -p cluster-test
115
+ [[ $CIRCLE_NODE_INDEX =~ [0124] ]] || RUST_BACKTRACE=1 $CARGO $CARGOFLAGS build -j 16 -p libra-fuzzer
116
+ [[ $CIRCLE_NODE_INDEX =~ [0124] ]] || RUST_BACKTRACE=1 $CARGO $CARGOFLAGS build -j 16 -p language_benchmarks
117
+ [[ $CIRCLE_NODE_INDEX =~ [0124] ]] || RUST_BACKTRACE=1 $CARGO $CARGOFLAGS build -j 16 -p cost-synthesis
118
+ [[ $CIRCLE_NODE_INDEX =~ [0124] ]] || RUST_BACKTRACE=1 $CARGO $CARGOFLAGS build -j 16 -p test-generation
126
119
- run :
127
120
name : Run All Non Flaky Unit Tests
128
121
command : |
129
- [[ $CIRCLE_NODE_INDEX =~ [0134] ]] || RUST_BACKTRACE=1 $CI_TIMEOUT cargo test --all-features --workspace --exclude libra-node --exclude libra-crypto --exclude testsuite --exclude consensus
122
+ [[ $CIRCLE_NODE_INDEX =~ [0134] ]] || RUST_BACKTRACE=1 $CI_TIMEOUT $CARGO $CARGOFLAGS test --all-features --workspace --exclude libra-node --exclude libra-crypto --exclude testsuite --exclude consensus
130
123
- run :
131
124
name : Run Cryptography Unit Tests with the formally verified backend
132
125
command : |
133
- [[ $CIRCLE_NODE_INDEX =~ [0134] ]] || ( RUST_BACKTRACE=1 cd crypto/crypto && $CI_TIMEOUT cargo test --features='std fiat_u64_backend fuzzing' --no-default-features )
126
+ [[ $CIRCLE_NODE_INDEX =~ [0134] ]] || ( RUST_BACKTRACE=1 cd crypto/crypto && $CI_TIMEOUT $CARGO $CARGOFLAGS test --features='std fiat_u64_backend fuzzing' --no-default-features )
134
127
- run :
135
128
name : Run All End to End Tests
136
129
command : |
137
- [[ $CIRCLE_NODE_INDEX =~ [0124] ]] || RUST_BACKTRACE=1 $CI_TIMEOUT cargo x test --package testsuite -- --test-threads 1
130
+ [[ $CIRCLE_NODE_INDEX =~ [0124] ]] || RUST_BACKTRACE=1 $CI_TIMEOUT $CARGO $CARGOFLAGSx test --package testsuite -- --test-threads 1
138
131
- run :
139
132
name : Run Quarantined Unit Tests 3 (consensus) times
140
133
command : |
@@ -155,16 +148,16 @@ jobs:
155
148
steps :
156
149
- build_setup
157
150
- run :
158
- name : Install Cargo Audit
151
+ name : Install cargo-audit
159
152
command : |
160
- cargo install --force cargo-audit
153
+ $CARGO $CARGOFLAGS install --force cargo-audit
161
154
- run :
162
155
# NOTE ignored advisory rules
163
156
# RUSTSEC-2018-0015 - term
164
157
# RUSTSEC-2019-0031 - spin
165
158
name : Audit crates
166
159
command : |
167
- cargo audit --deny-warnings \
160
+ $CARGO $CARGOFLAGS audit --deny-warnings \
168
161
--ignore RUSTSEC-2018-0015 \
169
162
--ignore RUSTSEC-2019-0031
170
163
- build_teardown
@@ -174,7 +167,6 @@ jobs:
174
167
steps :
175
168
- build_setup
176
169
- install_code_coverage_deps
177
- - install_rust_nightly_toolchain
178
170
- run :
179
171
name : Setup code coverage output
180
172
command : echo "export CODECOV_OUTPUT=codecov" >> $BASH_ENV
0 commit comments