@@ -2,72 +2,79 @@ name: Test
2
2
3
3
on :
4
4
push :
5
+ branches : main
5
6
pull_request :
6
7
branches : main
7
8
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
+
8
15
jobs :
9
16
build :
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
17
+ runs-on : ubuntu-18.04
18
18
steps :
19
19
- name : Checkout
20
- uses : actions/checkout@v4
21
- - name : Setup Node
22
- uses : actions/setup-node@v4
23
- with :
24
- cache : ' npm'
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";
25
27
26
28
- name : Install
27
- run : npm ci
29
+ run : npm install
28
30
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'
31
+ - name : Install wasi-sdk
32
+ env :
33
+ PROJ_ROOT : ${{ steps.preparation.outputs.PROJ_ROOT }}
49
34
run : |
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'
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 }}
61
47
run : |
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
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/
65
65
- name : Compile to Wasm & Test Wasm
66
+ env :
67
+ PROJ_ROOT : ${{ steps.preparation.outputs.PROJ_ROOT }}
66
68
run : |
69
+ cd $PROJ_ROOT;
67
70
rm lib/lexer.wasm;
68
71
npm run build-wasm;
69
72
npm run build;
70
73
# test
71
74
npm run test;
72
75
- name : Benchmark Wasm
73
- run : npm run bench;
76
+ env :
77
+ PROJ_ROOT : ${{ steps.preparation.outputs.PROJ_ROOT }}
78
+ run : |
79
+ cd $PROJ_ROOT;
80
+ npm run bench;
0 commit comments