Fixes #2267. This PR doesn't decrease the coverage, because every job is tested either per PR or nightly run (instead of 2 times as it was before). Actually, it even increases it because Android is tested with Ubuntu 20 now which was disabled before.
548 lines
20 KiB
YAML
548 lines
20 KiB
YAML
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
|
|
name: compilation on android, ubuntu-22.04
|
|
|
|
on:
|
|
# will be triggered on PR events
|
|
pull_request:
|
|
types:
|
|
- opened
|
|
- synchronize
|
|
paths:
|
|
- ".github/workflows/build_llvm_libraries.yml"
|
|
- ".github/workflows/compilation_on_android_ubuntu.yml"
|
|
- "build-scripts/**"
|
|
- "core/**"
|
|
- "!core/deps/**"
|
|
- "product-mini/**"
|
|
- "samples/**"
|
|
- "!samples/workload/**"
|
|
- "tests/wamr-test-suites/**"
|
|
- "wamr-compiler/**"
|
|
- "wamr-sdk/**"
|
|
# will be triggered on push events
|
|
push:
|
|
branches:
|
|
- main
|
|
- "dev/**"
|
|
paths:
|
|
- ".github/workflows/build_llvm_libraries.yml"
|
|
- ".github/workflows/compilation_on_android_ubuntu.yml"
|
|
- "build-scripts/**"
|
|
- "core/**"
|
|
- "!core/deps/**"
|
|
- "product-mini/**"
|
|
- "samples/**"
|
|
- "!samples/workload/**"
|
|
- "tests/wamr-test-suites/**"
|
|
- "wamr-compiler/**"
|
|
- "wamr-sdk/**"
|
|
# allow to be triggered manually
|
|
workflow_dispatch:
|
|
|
|
# Cancel any in-flight jobs for the same PR/branch so there's only one active
|
|
# at a time
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
# For BUILD
|
|
AOT_BUILD_OPTIONS: " -DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_FAST_JIT=0 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
|
|
CLASSIC_INTERP_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=0 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_FAST_JIT=0 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
|
|
FAST_INTERP_BUILD_OPTIONS: " -DWAMR_BUILD_AOT=0 -DWAMR_BUILD_FAST_INTERP=1 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_FAST_JIT=0 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
|
|
FAST_JIT_BUILD_OPTIONS: " -DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_FAST_JIT=1 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
|
|
LLVM_LAZY_JIT_BUILD_OPTIONS: " -DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_FAST_JIT=0 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=1"
|
|
LLVM_EAGER_JIT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_FAST_JIT=0 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=0"
|
|
MULTI_TIER_JIT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_FAST_JIT=1 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=1"
|
|
# For Spec Test
|
|
DEFAULT_TEST_OPTIONS: "-s spec -b -P"
|
|
MULTI_MODULES_TEST_OPTIONS: "-s spec -b -M -P"
|
|
SIMD_TEST_OPTIONS: "-s spec -b -S -P"
|
|
THREADS_TEST_OPTIONS: "-s spec -b -p -P"
|
|
X86_32_TARGET_TEST_OPTIONS: "-m x86_32 -P"
|
|
WASI_TEST_OPTIONS: "-s wasi_certification -w"
|
|
|
|
jobs:
|
|
build_llvm_libraries_on_ubuntu_2204:
|
|
uses: ./.github/workflows/build_llvm_libraries.yml
|
|
with:
|
|
os: "ubuntu-22.04"
|
|
arch: "X86"
|
|
|
|
build_wamrc:
|
|
needs:
|
|
[build_llvm_libraries_on_ubuntu_2204]
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- os: ubuntu-22.04
|
|
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@v3
|
|
|
|
# since jobs.id can't contain the dot character
|
|
# it is hard to use `format` to assemble the cache key
|
|
- name: Get LLVM libraries
|
|
id: retrieve_llvm_libs
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
./core/deps/llvm/build/bin
|
|
./core/deps/llvm/build/include
|
|
./core/deps/llvm/build/lib
|
|
./core/deps/llvm/build/libexec
|
|
./core/deps/llvm/build/share
|
|
key: ${{ matrix.llvm_cache_key }}
|
|
|
|
- name: Quit if cache miss
|
|
if: steps.retrieve_llvm_libs.outputs.cache-hit != 'true'
|
|
run: echo "::error::can not get prebuilt llvm libraries" && exit 1
|
|
|
|
- name: Build wamrc
|
|
run: |
|
|
mkdir build && cd build
|
|
cmake ..
|
|
cmake --build . --config Release --parallel 4
|
|
working-directory: wamr-compiler
|
|
|
|
build_iwasm:
|
|
needs:
|
|
[build_llvm_libraries_on_ubuntu_2204]
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
make_options_run_mode: [
|
|
# Running mode
|
|
$AOT_BUILD_OPTIONS,
|
|
$CLASSIC_INTERP_BUILD_OPTIONS,
|
|
$FAST_INTERP_BUILD_OPTIONS,
|
|
$FAST_JIT_BUILD_OPTIONS,
|
|
$LLVM_LAZY_JIT_BUILD_OPTIONS,
|
|
$LLVM_EAGER_JIT_BUILD_OPTIONS,
|
|
$MULTI_TIER_JIT_BUILD_OPTIONS,
|
|
]
|
|
make_options_feature: [
|
|
# Features
|
|
"-DWAMR_BUILD_CUSTOM_NAME_SECTION=1",
|
|
"-DWAMR_BUILD_DEBUG_AOT=1",
|
|
"-DWAMR_BUILD_DEBUG_INTERP=1",
|
|
"-DWAMR_BUILD_DUMP_CALL_STACK=1",
|
|
"-DWAMR_BUILD_LIB_PTHREAD=1",
|
|
"-DWAMR_BUILD_LIB_WASI_THREADS=1",
|
|
"-DWAMR_BUILD_LOAD_CUSTOM_SECTION=1",
|
|
"-DWAMR_BUILD_MINI_LOADER=1",
|
|
"-DWAMR_BUILD_MEMORY_PROFILING=1",
|
|
"-DWAMR_BUILD_MULTI_MODULE=1",
|
|
"-DWAMR_BUILD_PERF_PROFILING=1",
|
|
"-DWAMR_BUILD_REF_TYPES=1",
|
|
"-DWAMR_BUILD_SIMD=1",
|
|
"-DWAMR_BUILD_TAIL_CALL=1",
|
|
"-DWAMR_DISABLE_HW_BOUND_CHECK=1",
|
|
]
|
|
os: [ubuntu-22.04]
|
|
platform: [android, linux]
|
|
exclude:
|
|
# uncompatiable feature and platform
|
|
# uncompatiable mode and feature
|
|
# MULTI_MODULE only on INTERP mode
|
|
- make_options_run_mode: $AOT_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_MULTI_MODULE=1"
|
|
- make_options_run_mode: $FAST_JIT_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_MULTI_MODULE=1"
|
|
- make_options_run_mode: $LLVM_LAZY_JIT_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_MULTI_MODULE=1"
|
|
- make_options_run_mode: $LLVM_EAGER_JIT_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_MULTI_MODULE=1"
|
|
- make_options_run_mode: $MULTI_TIER_JIT_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_MULTI_MODULE=1"
|
|
# SIMD only on JIT/AOT mode
|
|
- make_options_run_mode: $CLASSIC_INTERP_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_SIMD=1"
|
|
- make_options_run_mode: $FAST_INTERP_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_SIMD=1"
|
|
# DEBUG_INTERP only on CLASSIC INTERP mode
|
|
- make_options_run_mode: $AOT_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_DEBUG_INTERP=1"
|
|
- make_options_run_mode: $FAST_INTERP_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_DEBUG_INTERP=1"
|
|
- make_options_run_mode: $FAST_JIT_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_DEBUG_INTERP=1"
|
|
- make_options_run_mode: $LLVM_LAZY_JIT_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_DEBUG_INTERP=1"
|
|
- make_options_run_mode: $LLVM_EAGER_JIT_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_DEBUG_INTERP=1"
|
|
- make_options_run_mode: $MULTI_TIER_JIT_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_DEBUG_INTERP=1"
|
|
# DEBUG_AOT only on JIT/AOT mode
|
|
- make_options_run_mode: $CLASSIC_INTERP_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_DEBUG_AOT=1"
|
|
- make_options_run_mode: $FAST_INTERP_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_DEBUG_AOT=1"
|
|
# TODO: DEBUG_AOT on JIT
|
|
- make_options_run_mode: $FAST_JIT_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_DEBUG_AOT=1"
|
|
- make_options_run_mode: $LLVM_LAZY_JIT_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_DEBUG_AOT=1"
|
|
- make_options_run_mode: $LLVM_EAGER_JIT_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_DEBUG_AOT=1"
|
|
- make_options_run_mode: $MULTI_TIER_JIT_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_DEBUG_AOT=1"
|
|
# MINI_LOADER only on INTERP mode
|
|
- make_options_run_mode: $AOT_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_MINI_LOADER=1"
|
|
- make_options_run_mode: $FAST_JIT_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_MINI_LOADER=1"
|
|
- make_options_run_mode: $LLVM_LAZY_JIT_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_MINI_LOADER=1"
|
|
- make_options_run_mode: $LLVM_EAGER_JIT_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_MINI_LOADER=1"
|
|
- make_options_run_mode: $MULTI_TIER_JIT_BUILD_OPTIONS
|
|
make_options_feature: "-DWAMR_BUILD_MINI_LOADER=1"
|
|
# Fast-JIT and Multi-Tier-JIT mode don't support android(X86-32)
|
|
- make_options_run_mode: $FAST_JIT_BUILD_OPTIONS
|
|
platform: android
|
|
- make_options_run_mode: $MULTI_TIER_JIT_BUILD_OPTIONS
|
|
platform: android
|
|
include:
|
|
- os: ubuntu-22.04
|
|
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@v3
|
|
|
|
# only download llvm cache when needed
|
|
- name: Get LLVM libraries
|
|
id: retrieve_llvm_libs
|
|
if: endsWith(matrix.make_options_run_mode, '_JIT_BUILD_OPTIONS')
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
./core/deps/llvm/build/bin
|
|
./core/deps/llvm/build/include
|
|
./core/deps/llvm/build/lib
|
|
./core/deps/llvm/build/libexec
|
|
./core/deps/llvm/build/share
|
|
key: ${{ matrix.llvm_cache_key }}
|
|
|
|
- name: Quit if cache miss
|
|
if: endsWith(matrix.make_options_run_mode, '_JIT_BUILD_OPTIONS') && (steps.retrieve_llvm_libs.outputs.cache-hit != 'true')
|
|
run: echo "::error::can not get prebuilt llvm libraries" && exit 1
|
|
|
|
- name: Build iwasm
|
|
run: |
|
|
mkdir build && cd build
|
|
cmake .. ${{ matrix.make_options_run_mode }} ${{ matrix.make_options_feature }}
|
|
cmake --build . --config Release --parallel 4
|
|
working-directory: product-mini/platforms/${{ matrix.platform }}
|
|
|
|
build_samples_wasm_c_api:
|
|
needs:
|
|
[
|
|
build_iwasm,
|
|
build_llvm_libraries_on_ubuntu_2204,
|
|
build_wamrc,
|
|
]
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
make_options: [
|
|
# Running mode
|
|
$AOT_BUILD_OPTIONS,
|
|
$CLASSIC_INTERP_BUILD_OPTIONS,
|
|
$FAST_INTERP_BUILD_OPTIONS,
|
|
$FAST_JIT_BUILD_OPTIONS,
|
|
$LLVM_LAZY_JIT_BUILD_OPTIONS,
|
|
$LLVM_EAGER_JIT_BUILD_OPTIONS,
|
|
$MULTI_TIER_JIT_BUILD_OPTIONS,
|
|
]
|
|
os: [ubuntu-22.04]
|
|
wasi_sdk_release:
|
|
[
|
|
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz",
|
|
]
|
|
wabt_release:
|
|
[
|
|
"https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz",
|
|
]
|
|
include:
|
|
- os: ubuntu-22.04
|
|
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
|
|
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Get LLVM libraries
|
|
id: retrieve_llvm_libs
|
|
if: (!endsWith(matrix.make_options, '_INTERP_BUILD_OPTIONS'))
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
./core/deps/llvm/build/bin
|
|
./core/deps/llvm/build/include
|
|
./core/deps/llvm/build/lib
|
|
./core/deps/llvm/build/libexec
|
|
./core/deps/llvm/build/share
|
|
key: ${{ matrix.llvm_cache_key }}
|
|
|
|
- name: Quit if cache miss
|
|
if: (!endsWith(matrix.make_options, '_INTERP_BUILD_OPTIONS')) && (steps.retrieve_llvm_libs.outputs.cache-hit != 'true')
|
|
run: echo "::error::can not get prebuilt llvm libraries" && exit 1
|
|
|
|
- name: download and install wabt
|
|
run: |
|
|
cd /opt
|
|
sudo wget ${{ matrix.wabt_release }}
|
|
sudo tar -xzf wabt-1.0.31-*.tar.gz
|
|
sudo mv wabt-1.0.31 wabt
|
|
|
|
- name: Build wamrc
|
|
if: (!endsWith(matrix.make_options, '_INTERP_BUILD_OPTIONS'))
|
|
run: |
|
|
mkdir build && cd build
|
|
cmake ..
|
|
cmake --build . --config Release --parallel 4
|
|
working-directory: wamr-compiler
|
|
|
|
- name: Build Sample [wasm-c-api]
|
|
run: |
|
|
VERBOSE=1
|
|
cmake -S . -B build ${{ matrix.make_options }}
|
|
cmake --build build --config Release --parallel 4
|
|
ctest --test-dir build --output-on-failure
|
|
working-directory: samples/wasm-c-api
|
|
|
|
build_samples_others:
|
|
needs: [build_iwasm]
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-22.04]
|
|
wasi_sdk_release:
|
|
[
|
|
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz",
|
|
]
|
|
wabt_release:
|
|
[
|
|
"https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz",
|
|
]
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: download and install wasi-sdk
|
|
run: |
|
|
cd /opt
|
|
sudo wget ${{ matrix.wasi_sdk_release }}
|
|
sudo tar -xzf wasi-sdk-*.tar.gz
|
|
sudo mv wasi-sdk-20.0 wasi-sdk
|
|
|
|
- name: download and install wabt
|
|
run: |
|
|
cd /opt
|
|
sudo wget ${{ matrix.wabt_release }}
|
|
sudo tar -xzf wabt-1.0.31-*.tar.gz
|
|
sudo mv wabt-1.0.31 wabt
|
|
|
|
- name: Build Sample [basic]
|
|
run: |
|
|
cd samples/basic
|
|
./build.sh
|
|
./run.sh
|
|
|
|
- name: Build Sample [file]
|
|
run: |
|
|
cd samples/file
|
|
mkdir build && cd build
|
|
cmake ..
|
|
cmake --build . --config Release --parallel 4
|
|
./src/iwasm -f wasm-app/file.wasm -d .
|
|
|
|
- name: Build Sample [multi-thread]
|
|
run: |
|
|
cd samples/multi-thread
|
|
mkdir build && cd build
|
|
cmake ..
|
|
cmake --build . --config Release --parallel 4
|
|
./iwasm wasm-apps/test.wasm
|
|
|
|
- name: Build Sample [multi-module]
|
|
run: |
|
|
cd samples/multi-module
|
|
mkdir build && cd build
|
|
cmake ..
|
|
cmake --build . --config Release --parallel 4
|
|
./multi_module
|
|
|
|
- name: Build Sample [spawn-thread]
|
|
run: |
|
|
cd samples/spawn-thread
|
|
mkdir build && cd build
|
|
cmake ..
|
|
cmake --build . --config Release --parallel 4
|
|
./spawn_thread
|
|
|
|
- name: Build Sample [ref-types]
|
|
run: |
|
|
cd samples/ref-types
|
|
mkdir build && cd build
|
|
cmake ..
|
|
cmake --build . --config Release --parallel 4
|
|
./hello
|
|
|
|
- name: Build Sample [simple]
|
|
run: |
|
|
./build.sh -p host-interp
|
|
python3 ./sample_test_run.py $(pwd)/out
|
|
exit $?
|
|
working-directory: ./samples/simple
|
|
|
|
- name: Build Sample [wasi-threads]
|
|
run: |
|
|
cd samples/wasi-threads
|
|
mkdir build && cd build
|
|
cmake ..
|
|
cmake --build . --config Release --parallel 4
|
|
./iwasm wasm-apps/no_pthread.wasm
|
|
|
|
test:
|
|
needs:
|
|
[
|
|
build_iwasm,
|
|
build_llvm_libraries_on_ubuntu_2204,
|
|
build_wamrc,
|
|
]
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-22.04]
|
|
running_mode:
|
|
[
|
|
"classic-interp",
|
|
"fast-interp",
|
|
"jit",
|
|
"aot",
|
|
"fast-jit",
|
|
"multi-tier-jit",
|
|
]
|
|
test_option:
|
|
[
|
|
$DEFAULT_TEST_OPTIONS,
|
|
$MULTI_MODULES_TEST_OPTIONS,
|
|
$SIMD_TEST_OPTIONS,
|
|
$THREADS_TEST_OPTIONS,
|
|
$WASI_TEST_OPTIONS,
|
|
]
|
|
wasi_sdk_release:
|
|
[
|
|
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz",
|
|
]
|
|
include:
|
|
- os: ubuntu-22.04
|
|
llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
|
|
ubuntu_version: "22.04"
|
|
exclude:
|
|
# uncompatiable modes and features
|
|
# classic-interp and fast-interp don't support simd
|
|
- running_mode: "classic-interp"
|
|
test_option: $SIMD_TEST_OPTIONS
|
|
- running_mode: "fast-interp"
|
|
test_option: $SIMD_TEST_OPTIONS
|
|
# aot and jit don't support multi module
|
|
- running_mode: "aot"
|
|
test_option: $MULTI_MODULES_TEST_OPTIONS
|
|
- running_mode: "jit"
|
|
test_option: $MULTI_MODULES_TEST_OPTIONS
|
|
# fast-jit doesn't support multi module, simd
|
|
- running_mode: "fast-jit"
|
|
test_option: $MULTI_MODULES_TEST_OPTIONS
|
|
- running_mode: "fast-jit"
|
|
test_option: $SIMD_TEST_OPTIONS
|
|
# multi-tier-jit doesn't support multi module, simd
|
|
- running_mode: "multi-tier-jit"
|
|
test_option: $MULTI_MODULES_TEST_OPTIONS
|
|
- running_mode: "multi-tier-jit"
|
|
test_option: $SIMD_TEST_OPTIONS
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: download and install wasi-sdk
|
|
if: matrix.test_option == '$WASI_TEST_OPTIONS'
|
|
run: |
|
|
cd /opt
|
|
sudo wget ${{ matrix.wasi_sdk_release }}
|
|
sudo tar -xzf wasi-sdk-*.tar.gz
|
|
sudo mv wasi-sdk-20.0 wasi-sdk
|
|
|
|
- name: set env variable(if llvm are used)
|
|
if: matrix.running_mode == 'aot' || matrix.running_mode == 'jit' || matrix.running_mode == 'multi-tier-jit'
|
|
run: echo "USE_LLVM=true" >> $GITHUB_ENV
|
|
|
|
- name: set env variable(if x86_32 test needed)
|
|
if: >
|
|
(matrix.test_option == '$DEFAULT_TEST_OPTIONS' || matrix.test_option == '$THREADS_TEST_OPTIONS'
|
|
|| matrix.test_option == '$WASI_TEST_OPTIONS')
|
|
&& matrix.running_mode != 'fast-jit' && matrix.running_mode != 'jit' && matrix.running_mode != 'multi-tier-jit'
|
|
run: echo "TEST_ON_X86_32=true" >> $GITHUB_ENV
|
|
|
|
#only download llvm libraries in jit and aot mode
|
|
- name: Get LLVM libraries
|
|
if: env.USE_LLVM == 'true'
|
|
id: retrieve_llvm_libs
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
./core/deps/llvm/build/bin
|
|
./core/deps/llvm/build/include
|
|
./core/deps/llvm/build/lib
|
|
./core/deps/llvm/build/libexec
|
|
./core/deps/llvm/build/share
|
|
key: ${{ matrix.llvm_cache_key }}
|
|
|
|
- name: Quit if cache miss
|
|
if: env.USE_LLVM == 'true' && steps.retrieve_llvm_libs.outputs.cache-hit != 'true'
|
|
run: echo "::error::can not get prebuilt llvm libraries" && exit 1
|
|
|
|
- name: install jq JSON processor
|
|
if: matrix.running_mode == 'aot' && matrix.test_option == '$WASI_TEST_OPTIONS'
|
|
run: sudo apt-get update && sudo apt install -y jq
|
|
|
|
- name: Build WASI thread tests
|
|
if: matrix.test_option == '$WASI_TEST_OPTIONS'
|
|
run: bash build.sh
|
|
working-directory: ./core/iwasm/libraries/lib-wasi-threads/test/
|
|
|
|
- name: build socket api tests
|
|
if: matrix.test_option == '$WASI_TEST_OPTIONS'
|
|
run: bash build.sh
|
|
working-directory: ./core/iwasm/libraries/lib-socket/test/
|
|
|
|
- name: run tests
|
|
timeout-minutes: 10
|
|
run: ./test_wamr.sh ${{ matrix.test_option }} -t ${{ matrix.running_mode }}
|
|
working-directory: ./tests/wamr-test-suites
|
|
|
|
#only install x32 support libraries when to run x86_32 cases
|
|
- name: install x32 support libraries
|
|
if: env.TEST_ON_X86_32 == 'true'
|
|
run:
|
|
# Add another apt repository as some packages cannot
|
|
# be downloaded with the github default repository
|
|
sudo curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc &&
|
|
sudo apt-add-repository https://packages.microsoft.com/ubuntu/${{ matrix.ubuntu_version }}/prod &&
|
|
sudo apt-get update &&
|
|
sudo apt install -y g++-multilib lib32gcc-9-dev
|
|
|
|
- name: run tests x86_32
|
|
timeout-minutes: 10
|
|
if: env.TEST_ON_X86_32 == 'true'
|
|
run: ./test_wamr.sh ${{ env.X86_32_TARGET_TEST_OPTIONS }} ${{ matrix.test_option }} -t ${{ matrix.running_mode }}
|
|
working-directory: ./tests/wamr-test-suites
|