@@ -3,6 +3,7 @@ name: Build
33on :
44 push :
55 paths :
6+ - .github/workflows/**
67 - ' **.ts'
78 - ' **.js'
89 - ' **.c'
2223 strategy :
2324 fail-fast : false
2425 matrix :
25- target : ['emscripten', 'wasi', 'wasi-threads']
26+ target :
27+ - ' wasm32-unknown-emscripten'
28+ - ' wasm64-unknown-emscripten'
29+ - ' wasm32-unknown-unknown'
30+ - ' wasm32-wasi'
31+ - ' wasm32-wasi-threads'
2632
2733 steps :
2834 - uses : actions/checkout@v3
@@ -31,26 +37,20 @@ jobs:
3137 sudo apt-get update
3238 sudo apt-get install ninja-build
3339 - uses : mymindstorm/setup-emsdk@v11
34- if : ${{ matrix.target == 'emscripten' }}
40+ if : ${{ contains( matrix.target, 'emscripten') }}
3541 with :
36- version : ' 3.1.29 '
42+ version : ' 3.1.32 '
3743 # no-cache: true
3844 actions-cache-folder : ' emsdk-cache'
3945 - uses : actions-rs/toolchain@v1
40- if : ${{ matrix.target == 'wasi' }}
46+ if : ${{ matrix.target == 'wasm32-unknown-unknown' || matrix.target == 'wasm32- wasi' }}
4147 with :
4248 toolchain : nightly
4349 default : true
44- target : wasm32-unknown-unknown
45- - uses : actions-rs/toolchain@v1
46- if : ${{ matrix.target == 'wasi' }}
47- with :
48- toolchain : nightly
49- default : true
50- target : wasm32-wasi
50+ target : ${{ matrix.target }}
5151
5252 - name : Install wasi-sdk
53- if : ${{ matrix.target == 'wasi' }}
53+ if : ${{ matrix.target == 'wasm32-unknown-unknown' || matrix.target == 'wasm32- wasi' }}
5454 env :
5555 WASI_VERSION : ' 19'
5656 WASI_VERSION_FULL : ' 19.0'
6262 tar zxvf wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz -C $WASI_SDK_PATH --strip 1
6363
6464 - name : Install wasi-sdk with threads
65- if : ${{ matrix.target == 'wasi-threads' }}
65+ if : ${{ matrix.target == 'wasm32- wasi-threads' }}
6666 env :
6767 WASI_VERSION : ' 20+threads'
6868 WASI_VERSION_FULL : ' 20.0.threads'
@@ -75,11 +75,11 @@ jobs:
7575
7676 - uses : actions/setup-node@v3
7777 with :
78- node-version : ' 18.12.1'
78+ node-version : ${{ (contains(matrix.target, 'emscripten') && '20.0.0-v8-canary202302081604228b65') || ' 18.12.1' }}
7979 registry-url : ' https://registry.npmjs.org'
8080 env :
8181 NODE_AUTH_TOKEN : ${{ secrets.NPM_TOKEN }}
82-
82+
8383 - name : NPM Install
8484 shell : bash
8585 run : |
9292
9393 # - name: Lint
9494 # run: npm run lint
95-
95+
9696 - name : Test wasm32-wasi-threads
97- if : ${{ matrix.target == 'wasi-threads' }}
97+ if : ${{ matrix.target == 'wasm32- wasi-threads' }}
9898 env :
9999 WASI_VERSION : ' 20+threads'
100100 WASI_VERSION_FULL : ' 20.0.threads'
@@ -107,21 +107,21 @@ jobs:
107107 npm run test:wt -w packages/test
108108
109109 - name : Test wasm32-unknown-emscripten
110- if : ${{ matrix.target == 'emscripten' }}
110+ if : ${{ matrix.target == 'wasm32-unknown- emscripten' }}
111111 run : |
112112 npm run rebuild -w packages/test
113113 npm run test -w packages/test
114114
115115 - name : Test wasm64-unknown-emscripten
116- if : ${{ matrix.target == 'emscripten' }}
116+ if : ${{ matrix.target == 'wasm64-unknown- emscripten' }}
117117 env :
118118 MEMORY64 : ' 1'
119119 run : |
120120 npm run rebuild -w packages/test
121121 npm run test -w packages/test
122122
123123 - name : Test wasm32-wasi
124- if : ${{ matrix.target == 'wasi' }}
124+ if : ${{ matrix.target == 'wasm32- wasi' }}
125125 env :
126126 WASI_VERSION : ' 19'
127127 WASI_VERSION_FULL : ' 19.0'
@@ -132,7 +132,7 @@ jobs:
132132 npm run test:w -w packages/test
133133
134134 - name : Test wasm32-unknown-unknown
135- if : ${{ matrix.target == 'wasi ' }}
135+ if : ${{ matrix.target == 'wasm32-unknown-unknown ' }}
136136 env :
137137 WASI_VERSION : ' 19'
138138 WASI_VERSION_FULL : ' 19.0'
@@ -187,6 +187,50 @@ jobs:
187187 shell : bash
188188 run : npm run build --workspaces --if-present
189189
190+ release :
191+ name : Release
192+ if : ${{ startsWith(github.event.ref, 'refs/tags') }}
193+ needs : build
194+ runs-on : ubuntu-latest
195+ env :
196+ WASI_VERSION : ' 19'
197+ WASI_VERSION_FULL : ' 19.0'
198+ WASI_SDK_PATH : ' ./wasi-sdk-19.0'
199+
200+ steps :
201+ - uses : actions/checkout@v3
202+ - name : Install Ninja
203+ run : |
204+ sudo apt-get update
205+ sudo apt-get install ninja-build
206+ - uses : mymindstorm/setup-emsdk@v11
207+ with :
208+ version : ' 3.1.32'
209+ # no-cache: true
210+ actions-cache-folder : ' emsdk-cache'
211+ - name : Install wasi-sdk
212+ shell : bash
213+ run : |
214+ wget -q https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_VERSION}/wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz
215+ mkdir -p $WASI_SDK_PATH
216+ tar zxvf wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz -C $WASI_SDK_PATH --strip 1
217+ - uses : actions/setup-node@v3
218+ with :
219+ node-version : ' 18.12.1'
220+ registry-url : ' https://registry.npmjs.org'
221+ env :
222+ NODE_AUTH_TOKEN : ${{ secrets.NPM_TOKEN }}
223+
224+ - name : NPM Install
225+ shell : bash
226+ run : |
227+ npm install -g node-gyp
228+ npm install
229+
230+ - name : NPM Build
231+ shell : bash
232+ run : npm run build --workspaces --if-present
233+
190234 - name : Publish
191235 run : |
192236 node ./script/release.js
0 commit comments