@@ -2,72 +2,79 @@ name: Test
22
33on :
44 push :
5+ branches : main
56 pull_request :
67 branches : main
78
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+
815jobs :
916 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
1818 steps :
1919 - 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";
2527
2628 - name : Install
27- run : npm ci
29+ run : npm install
2830
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 }}
4934 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 }}
6147 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/
6565 - name : Compile to Wasm & Test Wasm
66+ env :
67+ PROJ_ROOT : ${{ steps.preparation.outputs.PROJ_ROOT }}
6668 run : |
69+ cd $PROJ_ROOT;
6770 rm lib/lexer.wasm;
6871 npm run build-wasm;
6972 npm run build;
7073 # test
7174 npm run test;
7275 - 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