3838 with :
3939 go-version : ' ^1.16'
4040
41+ - name : Cache
42+ if : ${{ env.ACT }}
43+ uses : actions/cache@v2
44+ with :
45+ path : |
46+ ~/go/pkg/mod
47+ key : licenses-${{ hashFiles('.github/workflows/rust.yml') }}
48+
4149 - name : Check licenses
4250 run : |
4351 go install github.com/google/addlicense@latest
5361 with :
5462 go-version : ' ^1.16'
5563
56- - name : Install dependencies
57- if : ${{ env.ACT }}
58- run : |
59- go install github.com/bazelbuild/[email protected] 60-
6164 - name : Cache
6265 uses : actions/cache@v2
6366 with :
@@ -66,22 +69,28 @@ jobs:
6669 ~/.cache/bazelisk
6770 ~/.cargo/.crates.toml
6871 ~/.cargo/.crates2.json
72+ ~/.cargo/advisory-db
6973 ~/.cargo/bin
7074 ~/.cargo/registry
71- key : ${{ hashFiles('WORKSPACE', '.bazelrc', '.bazelversion', 'bazel/cargo/Cargo.Bazel.lock', 'bazel/dependencies.bzl', 'bazel/repositories.bzl') }}
75+ ~/go/pkg/mod
76+ key : bazel-${{ hashFiles('BUILD', 'WORKSPACE', '.bazelrc', '.bazelversion', 'bazel/cargo/Cargo.Bazel.lock', 'bazel/dependencies.bzl', 'bazel/repositories.bzl') }}
77+
78+ - name : Install dependencies
79+ if : ${{ env.ACT }}
80+ run : |
81+ go install github.com/bazelbuild/[email protected] 7282
7383 - name : Build (wasm32-unknown-unknown)
7484 run : bazelisk --noworkspace_rc build --noenable_bzlmod --platforms=@rules_rust//rust/platform:wasm //...
7585
76- - name : Build (wasm32-wasi )
86+ - name : Build (wasm32-wasip1 )
7787 run : bazelisk --noworkspace_rc build --noenable_bzlmod --platforms=@rules_rust//rust/platform:wasi //...
7888
7989 - name : Format (buildifier)
8090 run : |
8191 go install github.com/bazelbuild/buildtools/buildifier@latest
8292 export PATH=$PATH:$(go env GOPATH)/bin
83- buildifier -mode=check WORKSPACE
84- buildifier -mode=check BUILD
93+ buildifier -mode=check -r .
8594
8695 - name : Format (rules_rust)
8796 run : |
@@ -97,6 +106,20 @@ jobs:
97106 steps :
98107 - uses : actions/checkout@v2
99108
109+ - name : Cache
110+ if : ${{ env.ACT }}
111+ uses : actions/cache@v2
112+ with :
113+ path : |
114+ ~/.cargo/.crates.toml
115+ ~/.cargo/.crates2.json
116+ ~/.cargo/advisory-db
117+ ~/.cargo/bin
118+ ~/.cargo/registry
119+ ~/.rustup
120+ **/target
121+ key : msrv-${{ hashFiles('Cargo.toml') }}
122+
100123 - name : Install dependencies
101124 if : ${{ env.ACT }}
102125 run : |
@@ -146,6 +169,20 @@ jobs:
146169 steps :
147170 - uses : actions/checkout@v2
148171
172+ - name : Cache
173+ if : ${{ env.ACT }}
174+ uses : actions/cache@v2
175+ with :
176+ path : |
177+ ~/.cargo/.crates.toml
178+ ~/.cargo/.crates2.json
179+ ~/.cargo/advisory-db
180+ ~/.cargo/bin
181+ ~/.cargo/registry
182+ ~/.rustup
183+ **/target
184+ key : stable-${{ hashFiles('Cargo.toml') }}
185+
149186 - name : Install dependencies
150187 if : ${{ env.ACT }}
151188 run : |
@@ -159,19 +196,19 @@ jobs:
159196 run : |
160197 rustup toolchain install stable --component clippy --component rustfmt
161198 rustup target add wasm32-unknown-unknown
162- rustup target add wasm32-wasi
199+ rustup target add wasm32-wasip1
163200
164201 - name : Build (wasm32-unknown-unknown)
165202 run : cargo build --release --all-targets --target=wasm32-unknown-unknown
166203
167204 - name : Clippy (wasm32-unknown-unknown)
168205 run : cargo clippy --release --all-targets --target=wasm32-unknown-unknown
169206
170- - name : Build (wasm32-wasi )
171- run : cargo build --release --all-targets --target=wasm32-wasi
207+ - name : Build (wasm32-wasip1 )
208+ run : cargo build --release --all-targets --target=wasm32-wasip1
172209
173- - name : Clippy (wasm32-wasi )
174- run : cargo clippy --release --all-targets --target=wasm32-wasi
210+ - name : Clippy (wasm32-wasip1 )
211+ run : cargo clippy --release --all-targets --target=wasm32-wasip1
175212
176213 - name : Format (rustfmt)
177214 run : cargo fmt -- --check
@@ -194,6 +231,20 @@ jobs:
194231 steps :
195232 - uses : actions/checkout@v2
196233
234+ - name : Cache
235+ if : ${{ env.ACT }}
236+ uses : actions/cache@v2
237+ with :
238+ path : |
239+ ~/.cargo/.crates.toml
240+ ~/.cargo/.crates2.json
241+ ~/.cargo/advisory-db
242+ ~/.cargo/bin
243+ ~/.cargo/registry
244+ ~/.rustup
245+ **/target
246+ key : nightly-${{ hashFiles('Cargo.toml') }}
247+
197248 - name : Install dependencies
198249 if : ${{ env.ACT }}
199250 run : |
@@ -208,19 +259,19 @@ jobs:
208259 rustup toolchain install nightly --component clippy --component rustfmt
209260 rustup default nightly
210261 rustup target add wasm32-unknown-unknown
211- rustup target add wasm32-wasi
262+ rustup target add wasm32-wasip1
212263
213264 - name : Build (wasm32-unknown-unknown)
214265 run : cargo build --release --all-targets --target=wasm32-unknown-unknown
215266
216267 - name : Clippy (wasm32-unknown-unknown)
217268 run : cargo clippy --release --all-targets --target=wasm32-unknown-unknown
218269
219- - name : Build (wasm32-wasi )
220- run : cargo build --release --all-targets --target=wasm32-wasi
270+ - name : Build (wasm32-wasip1 )
271+ run : cargo build --release --all-targets --target=wasm32-wasip1
221272
222- - name : Clippy (wasm32-wasi )
223- run : cargo clippy --release --all-targets --target=wasm32-wasi
273+ - name : Clippy (wasm32-wasip1 )
274+ run : cargo clippy --release --all-targets --target=wasm32-wasip1
224275
225276 - name : Format (rustfmt)
226277 run : cargo fmt -- --check
@@ -240,6 +291,19 @@ jobs:
240291 steps :
241292 - uses : actions/checkout@v2
242293
294+ - name : Cache
295+ if : ${{ env.ACT }}
296+ uses : actions/cache@v2
297+ with :
298+ path : |
299+ ~/.cargo/.crates.toml
300+ ~/.cargo/.crates2.json
301+ ~/.cargo/advisory-db
302+ ~/.cargo/bin
303+ ~/.cargo/registry
304+ ~/.rustup
305+ key : outdated-${{ hashFiles('Cargo.toml') }}
306+
243307 - name : Install dependencies
244308 if : ${{ env.ACT }}
245309 run : |
@@ -260,6 +324,19 @@ jobs:
260324 steps :
261325 - uses : actions/checkout@v2
262326
327+ - name : Cache
328+ if : ${{ env.ACT }}
329+ uses : actions/cache@v2
330+ with :
331+ path : |
332+ ~/.cargo/.crates.toml
333+ ~/.cargo/.crates2.json
334+ ~/.cargo/advisory-db
335+ ~/.cargo/bin
336+ ~/.cargo/registry
337+ ~/.rustup
338+ key : audit-${{ hashFiles('Cargo.toml') }}
339+
263340 - name : Install dependencies
264341 if : ${{ env.ACT }}
265342 run : |
@@ -276,7 +353,7 @@ jobs:
276353 cp -p bazel/cargo/Cargo.Bazel.lock Cargo.lock
277354 cargo audit
278355
279- example :
356+ examples :
280357 runs-on : ubuntu-latest
281358
282359 strategy :
@@ -300,6 +377,20 @@ jobs:
300377 steps :
301378 - uses : actions/checkout@v2
302379
380+ - name : Cache
381+ if : ${{ env.ACT }}
382+ uses : actions/cache@v2
383+ with :
384+ path : |
385+ ~/.cargo/.crates.toml
386+ ~/.cargo/.crates2.json
387+ ~/.cargo/advisory-db
388+ ~/.cargo/bin
389+ ~/.cargo/registry
390+ ~/.rustup
391+ **/target
392+ key : example-${{ matrix.example }}-${{ hashFiles('Cargo.toml') }}
393+
303394 - name : Install dependencies
304395 if : ${{ env.ACT }}
305396 run : |
@@ -312,13 +403,13 @@ jobs:
312403 - name : Update Rust
313404 run : |
314405 rustup toolchain install stable --component clippy --component rustfmt
315- rustup target add wasm32-wasi
406+ rustup target add wasm32-wasip1
316407
317- - name : Build (wasm32-wasi )
318- run : cargo build --release --target=wasm32-wasi
408+ - name : Build (wasm32-wasip1 )
409+ run : cargo build --release --target=wasm32-wasip1
319410
320- - name : Clippy (wasm32-wasi )
321- run : cargo clippy --release --target=wasm32-wasi
411+ - name : Clippy (wasm32-wasip1 )
412+ run : cargo clippy --release --target=wasm32-wasip1
322413
323414 - name : Format (rustfmt)
324415 run : cargo fmt -- --check
@@ -327,21 +418,23 @@ jobs:
327418 run : cargo verify-project
328419
329420 - name : Run cargo audit
421+ if : ${{ !env.ACT }}
330422 run : cargo audit
331423
332424 - name : Run cargo outdated
425+ if : ${{ !env.ACT }}
333426 run : cargo outdated --root-deps-only --exit-code 1
334427
335428 - name : Validate Envoy config
336429 run : |
337430 docker run --rm \
338431 -v $(pwd)/envoy.yaml:/envoy.yaml \
339- -v $(pwd)/target/wasm32-wasi /release:/etc/envoy/proxy-wasm-plugins \
432+ -v $(pwd)/target/wasm32-wasip1 /release:/etc/envoy/proxy-wasm-plugins \
340433 envoyproxy/envoy:v1.31-latest \
341434 --mode validate \
342435 -c envoy.yaml
343436
344- reactor :
437+ reactors :
345438 runs-on : ubuntu-latest
346439
347440 strategy :
@@ -365,48 +458,66 @@ jobs:
365458 steps :
366459 - uses : actions/checkout@v2
367460
461+ - name : Cache
462+ if : ${{ env.ACT }}
463+ uses : actions/cache@v2
464+ with :
465+ path : |
466+ ~/.cargo/.crates.toml
467+ ~/.cargo/.crates2.json
468+ ~/.cargo/advisory-db
469+ ~/.cargo/bin
470+ ~/.cargo/registry
471+ ~/.rustup
472+ **/target
473+ key : reactor-${{ matrix.example }}-${{ hashFiles('Cargo.toml') }}
474+
368475 - name : Install dependencies
369476 if : ${{ env.ACT }}
370477 run : |
371478 curl -OL https://static.rust-lang.org/rustup/rustup-init.sh
372479 chmod +x ./rustup-init.sh
373- ./rustup-init.sh -y
480+ ./rustup-init.sh -y --default-toolchain nightly
374481 rm rustup-init.sh
375482 echo "$HOME/.cargo/bin" >> $GITHUB_PATH
376483
377484 - name : Update Rust
378485 run : |
379486 rustup toolchain install nightly --component clippy --component rustfmt
380- rustup +nightly target add wasm32-wasi
381487 rustup default nightly
488+ rustup target add wasm32-wasip1
382489
383490 - name : Change crate type from library to binary
384491 run : |
385492 grep -v '^\[lib\]' Cargo.toml > Cargo.tmp
386493 grep -v '^crate-type' Cargo.tmp > Cargo.toml
387494 mv src/lib.rs src/main.rs
388495
389- - name : Build (wasm32-wasi )
390- run : cargo build --release --target=wasm32-wasi
496+ - name : Build (wasm32-wasip1 )
497+ run : cargo build --release --target=wasm32-wasip1
391498
392- - name : Clippy (wasm32-wasi )
393- run : cargo clippy --release --target=wasm32-wasi
499+ - name : Clippy (wasm32-wasip1 )
500+ run : cargo clippy --release --target=wasm32-wasip1
394501
395502 - name : Format (rustfmt)
396503 run : cargo fmt -- --check
397504
398505 - name : Format (manifest)
399506 run : cargo verify-project
400507
401- - name : Run cargo audit
402- run : cargo audit
508+ # TODO: Re-enable once cargo audit supports Cargo lockfile v4.
509+ # - name: Run cargo audit
510+ # if: ${{ !env.ACT }}
511+ # run: cargo audit
403512
404- - name : Run cargo outdated
405- run : cargo outdated --root-deps-only --exit-code 1
513+ # TODO: Re-enable once cargo outdated supports Cargo lockfile v4.
514+ # - name: Run cargo outdated
515+ # if: ${{ !env.ACT }}
516+ # run: cargo outdated --root-deps-only --exit-code 1
406517
407518 - name : Rename .wasm to match expected filename
408519 run : |
409- cd target/wasm32-wasi /release
520+ cd target/wasm32-wasip1 /release
410521 for file in $(ls -1 *.wasm); do \
411522 mv $file $(echo $file | sed 's/-/_/g'); \
412523 done
@@ -415,7 +526,7 @@ jobs:
415526 run : |
416527 docker run --rm \
417528 -v $(pwd)/envoy.yaml:/envoy.yaml \
418- -v $(pwd)/target/wasm32-wasi /release:/etc/envoy/proxy-wasm-plugins \
529+ -v $(pwd)/target/wasm32-wasip1 /release:/etc/envoy/proxy-wasm-plugins \
419530 envoyproxy/envoy:v1.31-latest \
420531 --mode validate \
421532 -c envoy.yaml
0 commit comments