77 branches : [main]
88
99jobs :
10+ build-wasm :
11+ name : Build wasm
12+ runs-on : ubuntu-latest
13+ steps :
14+ - uses : actions/checkout@v4
15+ with :
16+ submodules : true
17+ - name : Install Rust toolchain & Binaryen
18+ run : rustup update && rustup target add wasm32-unknown-unknown && sudo apt-get install -y binaryen wabt
19+ - name : Build wasm
20+ run : ./examples/rust/build.sh
21+ - name : Save artifacts
22+ uses : actions/upload-artifact@v4
23+ with :
24+ name : wasm
25+ path : examples/rust/out
26+
1027 test-std :
28+ needs : build-wasm
1129 name : Test with default features on stable Rust
1230 runs-on : ubuntu-latest
1331
@@ -16,15 +34,14 @@ jobs:
1634 with :
1735 submodules : true
1836
19- - name : Install stable Rust toolchain & Binaryen
20- run : |
21- rustup update stable
22- rustup update nightly
23- rustup target add wasm32-unknown-unknown
24- sudo apt-get install -y binaryen wabt
37+ - name : Install latest stable Rust toolchain
38+ run : rustup update stable
2539
26- - name : Build wasm
27- run : ./examples/rust/build.sh
40+ - name : Load wasm
41+ uses : actions/download-artifact@v4
42+ with :
43+ name : wasm
44+ path : examples/rust/out
2845
2946 - name : Build (stable)
3047 run : cargo +stable build --workspace
3653 run : cargo +stable test-mvp
3754
3855 test-no-std :
56+ needs : build-wasm
3957 name : Test without default features on nightly Rust
4058 runs-on : ubuntu-latest
4159
@@ -44,14 +62,14 @@ jobs:
4462 with :
4563 submodules : true
4664
47- - name : Install nightly Rust toolchain & Binaryen
48- run : |
49- rustup update nightly
50- rustup target add wasm32-unknown-unknown
51- sudo apt-get install -y binaryen wabt
65+ - name : Install latest nightly Rust toolchain
66+ run : rustup update nightly
5267
53- - name : Build wasm
54- run : ./examples/rust/build.sh
68+ - name : Load wasm
69+ uses : actions/download-artifact@v4
70+ with :
71+ name : wasm
72+ path : examples/rust/out
5573
5674 - name : Build (nightly, no default features)
5775 run : cargo +nightly build --workspace --no-default-features
6179
6280 - name : Run MVP testsuite (nightly)
6381 run : cargo +nightly test-mvp
82+
83+ test-m1 :
84+ needs : build-wasm
85+ name : Test on arm64 (Apple M1)
86+ runs-on : macos-14
87+ steps :
88+ - uses : actions/checkout@v4
89+ with :
90+ submodules : true
91+ - name : Install stable Rust toolchain
92+ run : rustup update stable
93+
94+ - name : Load wasm
95+ uses : actions/download-artifact@v4
96+ with :
97+ name : wasm
98+ path : examples/rust/out
99+
100+ - name : Build (stable)
101+ run : cargo +stable build
102+ - name : Run tests (stable)
103+ run : cargo +stable test
104+ - name : Run MVP testsuite
105+ run : cargo +stable test-mvp
106+
107+ test-armv7 :
108+ needs : build-wasm
109+ name : Test on armv7 (32-Bit Raspberry Pi)
110+ runs-on : ubuntu-latest
111+
112+ steps :
113+ - uses : actions/checkout@v4
114+ with :
115+ submodules : true
116+
117+ - name : Load wasm
118+ uses : actions/download-artifact@v4
119+ with :
120+ name : wasm
121+ path : examples/rust/out
122+
123+ - name : Run all tests (for the default workspace members)
124+ uses : houseabsolute/actions-rust-cross@v0.0.12
125+ with :
126+ command : test
127+ target : armv7-unknown-linux-gnueabihf
128+ toolchain : nightly
129+
130+ - name : Run MVP testsuite
131+ uses : houseabsolute/actions-rust-cross@v0.0.12
132+ with :
133+ command : test
134+ args : " -p tinywasm --test test-mvp --release -- --enable"
135+ target : armv7-unknown-linux-gnueabihf
136+ toolchain : nightly
0 commit comments