@@ -2,79 +2,72 @@ name: Test
2
2
3
3
on :
4
4
push :
5
- branches : main
6
5
pull_request :
7
6
branches : main
8
7
9
- env :
10
- WASI_VERSION : 12
11
- WASI_VERSION_FULL : " 12.0"
12
- WABT_VERSION : " 1.0.24"
13
- EMCC_VERSION : " 1.40.1-fastcomp"
14
-
15
8
jobs :
16
9
build :
17
- runs-on : ubuntu-18.04
10
+ runs-on : ubuntu-latest
11
+ env :
12
+ WASI_SDK_VERSION : " 21"
13
+ WASI_SDK_PATH : /opt/wasi-sdk
14
+ WABT_VERSION : " 1.0.34"
15
+ WABT_PATH : /opt/wabt
16
+ BINARYEN_VERSION : " 117"
17
+ BINARYEN_PATH : /opt/binaryen
18
18
steps :
19
19
- name : Checkout
20
- uses : actions/checkout@v2
21
-
22
- - name : Prepare
23
- id : preparation
24
- run : |
25
- export PWD=$(pwd);
26
- echo "::set-output name=PROJ_ROOT::$PWD";
20
+ uses : actions/checkout@v4
21
+ - name : Setup Node
22
+ uses : actions/setup-node@v4
23
+ with :
24
+ cache : ' npm'
27
25
28
26
- name : Install
29
- run : npm install
27
+ run : npm ci
30
28
31
- - name : Install wasi-sdk
32
- env :
33
- PROJ_ROOT : ${{ steps.preparation.outputs.PROJ_ROOT }}
29
+ - name : " Restore WASI SDK"
30
+ id : cache-wasi-sdk
31
+ uses : actions/cache@v4
32
+ with :
33
+ path : ${{ env.WASI_SDK_PATH }}
34
+ key : ${{ runner.os }}-wasi-sdk-${{ env.WASI_SDK_VERSION }}
35
+ - name : " Install WASI SDK"
36
+ if : steps.cache-wasi-sdk.outputs.cache-hit != 'true'
37
+ run : |
38
+ mkdir ${{ env.WASI_SDK_PATH }} && \
39
+ curl -s -S --location https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${{ env.WASI_SDK_VERSION }}/wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-linux.tar.gz | \
40
+ tar --strip-components 1 --directory ${{ env.WASI_SDK_PATH }} --extract --gunzip
41
+ - name : " Restore WABT"
42
+ id : cache-wabt
43
+ uses : actions/cache@v4
44
+ with :
45
+ path : ${{ env.WABT_PATH }}
46
+ key : ${{ runner.os }}-wabt-${{ env.WABT_VERSION }}
47
+ - name : " Install WABT"
48
+ if : steps.cache-wabt.outputs.cache-hit != 'true'
34
49
run : |
35
- cd $PROJ_ROOT;
36
- cd ../;
37
- export WASI_OS="linux"
38
- curl -sL https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_VERSION}/wasi-sdk-${WASI_VERSION_FULL}-${WASI_OS}.tar.gz -O
39
- # check if package downloaded
40
- ls -la
41
- tar xvf wasi-sdk-${WASI_VERSION_FULL}-${WASI_OS}.tar.gz
42
- # print clang version
43
- ./wasi-sdk-${WASI_VERSION_FULL}/bin/clang --version
44
- - name : Install wabt
45
- env :
46
- PROJ_ROOT : ${{ steps.preparation.outputs.PROJ_ROOT }}
50
+ mkdir ${{ env.WABT_PATH }} && \
51
+ curl -s -S --location https://github.com/WebAssembly/wabt/releases/download/${{ env.WABT_VERSION }}/wabt-${{ env.WABT_VERSION }}-ubuntu.tar.gz | \
52
+ tar --strip-components 1 --directory ${{ env.WABT_PATH }} --extract --gunzip
53
+ - name : " Restore Binaryen"
54
+ id : cache-binaryen
55
+ uses : actions/cache@v4
56
+ with :
57
+ path : ${{ env.BINARYEN_PATH }}
58
+ key : ${{ runner.os }}-binaryen-${{ env.BINARYEN_VERSION }}
59
+ - name : " Install Binaryen"
60
+ if : steps.cache-binaryen.outputs.cache-hit != 'true'
47
61
run : |
48
- cd $PROJ_ROOT;
49
- cd ../;
50
- if [[ "$RUNNER_OS" == "Linux" ]]; then
51
- export WABT_OS="ubuntu";
52
- fi
53
- if [[ "$RUNNER_OS" == "macOS" ]]; then
54
- export WABT_OS="macos";
55
- fi
56
- if [[ "$RUNNER_OS" == "Windows" ]]; then
57
- export WABT_OS="windows";
58
- fi
59
- curl -sL https://github.com/WebAssembly/wabt/releases/download/${WABT_VERSION}/wabt-${WABT_VERSION}-${WABT_OS}.tar.gz -O
60
- # check if package downloaded
61
- ls -la
62
- tar xvf wabt-${WABT_VERSION}-${WABT_OS}.tar.gz
63
- # check if wabt binaries installed
64
- ls -la ./wabt-${WABT_VERSION}/bin/
62
+ mkdir ${{ env.BINARYEN_PATH }} && \
63
+ curl -s -S --location https://github.com/WebAssembly/binaryen/releases/download/version_${{ env.BINARYEN_VERSION }}/binaryen-version_${{ env.BINARYEN_VERSION }}-x86_64-linux.tar.gz | \
64
+ tar --strip-components 1 --directory ${{ env.WABT_PATH }} --extract --gunzip
65
65
- name : Compile to Wasm & Test Wasm
66
- env :
67
- PROJ_ROOT : ${{ steps.preparation.outputs.PROJ_ROOT }}
68
66
run : |
69
- cd $PROJ_ROOT;
70
67
rm lib/lexer.wasm;
71
68
npm run build-wasm;
72
69
npm run build;
73
70
# test
74
71
npm run test;
75
72
- name : Benchmark Wasm
76
- env :
77
- PROJ_ROOT : ${{ steps.preparation.outputs.PROJ_ROOT }}
78
- run : |
79
- cd $PROJ_ROOT;
80
- npm run bench;
73
+ run : npm run bench;
0 commit comments