Skip to content

try set cmake to old version with the 3.5 command line override #7

try set cmake to old version with the 3.5 command line override

try set cmake to old version with the 3.5 command line override #7

Workflow file for this run

name: Actions
on:
push:
branches: [main, escargot_gc_wip_macos_ci_testing]
pull_request:
branches: [main]
env:
RUNNER: tools/run-tests.py
jobs:
# check-tidy:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - name: Install Packages
# run: |
# sudo add-apt-repository "deb http://mirrors.kernel.org/ubuntu/ focal main universe"
# sudo apt update
# sudo apt install -y clang-format-10
# - name: Test
# run: tools/check_tidy.py
build-on-macos:
strategy:
fail-fast: false
matrix:
mode: [debug, release]
switch: [--jit, --jit-no-reg-alloc, ""]
runs-on: macos-13
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Packages
run: |
brew update
brew install ninja pkg-config
- name: Build x64
env:
BUILD_OPTIONS: -DWALRUS_MODE=${{ matrix.mode }} -DWALRUS_OUTPUT=shell -GNinja
run: |
cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -H. -Bout/mac $BUILD_OPTIONS
ninja -Cout/mac
- name: "Remove 2 test files due to stack overflow occurred by recursion calls in debug mode build by clang"
if: matrix.mode == 'debug' && matrix.switch == ''
run: |
rm ./test/wasm-spec/core/call.wast
rm ./test/wasm-spec/core/call_indirect.wast
rm ./test/extended/gc/call_ref.wast
- name: Run Tests
run: |
#FIXME try-catch is unstable in macos build
$RUNNER --engine="$GITHUB_WORKSPACE/out/mac/walrus" ${{ matrix.switch }}
build-on-macos-arm64:
strategy:
fail-fast: false
matrix:
mode: [debug, release]
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Packages
run: |
brew update
brew install ninja
- name: Build arm64
env:
BUILD_OPTIONS: -DWALRUS_MODE=${{ matrix.mode }} -DWALRUS_OUTPUT=shell -GNinja
run: |
cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -H. -Bout/mac $BUILD_OPTIONS
ninja -Cout/mac
- name: "Remove 2 test files due to stack overflow occurred by recursion calls in debug mode build by clang"
if: matrix.mode == 'debug'
run: |
rm ./test/wasm-spec/core/call.wast
rm ./test/wasm-spec/core/call_indirect.wast
rm ./test/extended/gc/call_ref.wast
- name: Run Tests
run: |
#FIXME try-catch is unstable in macos build
$RUNNER --engine="$GITHUB_WORKSPACE/out/mac/walrus"
# build-by-clang:
# strategy:
# fail-fast: false
# matrix:
# arch:
# - x86
# - x64
# mode:
# - debug
# - release
# compile:
# - name: Build
# options: ""
# tests: ""
# - name: Pure build
# options: -DWALRUS_WASI=OFF
# tests: "basic-tests wasm-test-core jit"
# switch:
# - --jit
# - --jit-no-reg-alloc
# - ""
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - name: Install Packages
# run: |
# sudo apt update
# sudo apt install -y ninja-build gcc-multilib g++-multilib
# - name: ${{ matrix.compile.name }} ${{ matrix.arch }}
# env:
# BUILD_OPTIONS: -DWALRUS_ARCH=${{ matrix.arch }} -DWALRUS_MODE=${{ matrix.mode }} -DWALRUS_OUTPUT=shell ${{ matrix.compile.options }} -GNinja
# run: |
# CC=clang CXX=clang++ cmake -H. -Bout/ $BUILD_OPTIONS
# ninja -Cout/
# - name: "Remove 2 test files due to stack overflow occurred by recursion calls in debug mode build by clang when walrus interpreter is used"
# if: matrix.mode == 'debug' && matrix.switch == ''
# run: |
# rm ./test/wasm-spec/core/call.wast
# rm ./test/wasm-spec/core/call_indirect.wast
# rm ./test/extended/gc/call_ref.wast
# - name: Run Tests
# run: |
# $RUNNER ${{ matrix.switch }} --engine="$GITHUB_WORKSPACE/out/walrus" ${{ matrix.compile.tests }}
#
# build-test-on-x86_x64:
# strategy:
# matrix:
# arch:
# - x86
# - x64
# # it is tested in release mode at buid-test-performance-x64_x86
# switch:
# - --jit
# - --jit-no-reg-alloc
# - ""
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - name: Install Packages
# run: |
# sudo apt update
# sudo apt install -y ninja-build gcc-multilib g++-multilib
# - name: Build ${{ matrix.arch }}
# env:
# BUILD_OPTIONS: -DWALRUS_ARCH=${{ matrix.arch }} -DWALRUS_HOST=linux -DWALRUS_MODE=debug -DWALRUS_OUTPUT=shell -GNinja
# run: |
# cmake -H. -Bout/linux/${{ matrix.arch }} $BUILD_OPTIONS
# ninja -Cout/linux/${{ matrix.arch }}
# - name: Run Tests
# run: |
# $RUNNER ${{ matrix.switch }} --engine="$GITHUB_WORKSPACE/out/linux/${{ matrix.arch }}/walrus"
#
# build-on-x64-with-perf:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - name: Install Packages
# run: |
# sudo apt update
# sudo apt install -y ninja-build gcc-multilib g++-multilib
# - name: Build x64
# env:
# BUILD_OPTIONS: -DWALRUS_JITPERF=1 -DWALRUS_MODE=debug -DWALRUS_OUTPUT=shell -GNinja
# run: |
# cmake -H. -Bout/linux/x64 $BUILD_OPTIONS
# ninja -Cout/linux/x64
#
# build-test-on-arches-with-qemu:
# name: ${{ matrix.compile.name }} on ${{ matrix.arch.name }} ${{ matrix.mode }} ${{ matrix.switch }}
# strategy:
# fail-fast: false
# matrix:
# switch:
# - --jit
# - ""
# compile:
# - name: Build
# options: ""
# tests: ""
# - name: Pure build
# options: -DWALRUS_WASI=OFF
# tests: "basic-tests wasm-test-core jit"
# mode:
# - debug
# - release
# arch:
# - name: armt2
# toolchain:
# url: https://toolchains.bootlin.com/downloads/releases/toolchains/armv7-eabihf/tarballs/armv7-eabihf--glibc--stable-2024.05-1.tar.xz
# name: armv7-eabihf--glibc--stable-2024.05-1.tar.xz
# CC: arm-buildroot-linux-gnueabihf-gcc-13.3.0.br_real
# CXX: arm-buildroot-linux-gnueabihf-g++.br_real
# CFFLAGS: -mthumb
# CFLAGS: -mthumb
# qemu:
# target: arm-linux-user
# name: qemu-arm
# walrus: arm
# - name: armv7
# toolchain:
# url: https://toolchains.bootlin.com/downloads/releases/toolchains/armv7-eabihf/tarballs/armv7-eabihf--glibc--stable-2024.05-1.tar.xz
# name: armv7-eabihf--glibc--stable-2024.05-1.tar.xz
# CC: arm-buildroot-linux-gnueabihf-gcc-13.3.0.br_real
# CXX: arm-buildroot-linux-gnueabihf-g++.br_real
# qemu:
# target: arm-linux-user
# name: qemu-arm
# walrus: arm
# - name: aarch64
# toolchain:
# url: https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64/tarballs/aarch64--glibc--stable-2024.05-1.tar.xz
# name: aarch64--glibc--stable-2024.05-1.tar.xz
# CC: aarch64-buildroot-linux-gnu-gcc-13.3.0.br_real
# CXX: aarch64-buildroot-linux-gnu-g++.br_real
# qemu:
# target: aarch64-linux-user
# name: qemu-aarch64
# walrus: aarch64
# - name: riscv64
# toolchain:
# url: https://toolchains.bootlin.com/downloads/releases/toolchains/riscv64-lp64d/tarballs/riscv64-lp64d--glibc--stable-2024.05-1.tar.xz
# name: riscv64-lp64d--glibc--stable-2024.05-1.tar.xz
# CC: riscv64-buildroot-linux-gnu-gcc-13.3.0.br_real
# CXX: riscv64-buildroot-linux-gnu-g++.br_real
# CFLAGS: -march=rv64gv
# CXXFLAGS: -march=rv64gv
# qemu:
# target: riscv64-linux-user
# name: qemu-riscv64
# walrus: riscv64
#
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - name: Install compiler
# run: |
# sudo apt update
# sudo apt install -y make wget ninja-build libglib2.0-dev
# wget ${{ matrix.arch.toolchain.url }}
# mkdir toolchain
# tar -xvf ${{ matrix.arch.toolchain.name }} -C toolchain --strip-components=1
# - name: Install qemu
# run: |
# wget https://download.qemu.org/qemu-9.0.2.tar.xz
# tar -xvf qemu-9.0.2.tar.xz
# cd qemu-9.0.2
# ./configure --target-list="${{ matrix.arch.qemu.target }}"
# make -j4
# - name: ${{ matrix.compile.name }} in ${{ matrix.arch.name }}
# env:
# CC: ./toolchain/bin/${{ matrix.arch.toolchain.CC }}
# CXX: ./toolchain/bin/${{ matrix.arch.toolchain.CXX }}
# CFLAGS: ${{ matrix.arch.toolchain.CFLAGS }}
# CXXFLAGS: ${{ matrix.arch.toolchain.CXXFLAGS }}
# run: |
# cmake -H. -DCMAKE_EXE_LINKER_FLAGS="-static" -Bout/ -DCMAKE_BUILD_TYPE=${{ matrix.mode }} -DWALRUS_ARCH=${{ matrix.arch.walrus }} -DWALRUS_HOST=linux -DWALRUS_MODE=debug -DWALRUS_OUTPUT=shell ${{ matrix.compile.options }} -GNinja
# ninja -C out/
# - name: "Remove 2 test files due to stack overflow occurred by recursion calls in interpreter mode build by gcc"
# if: matrix.switch == ''
# run: |
# rm ./test/wasm-spec/core/call.wast
# rm ./test/wasm-spec/core/call_indirect.wast
# rm ./test/extended/gc/call_ref.wast
# - name: Test in ${{matrix.arch.name}}
# run: |
# $RUNNER ${{ matrix.switch }} --engine="./out/walrus" --qemu="./qemu-9.0.2/build/${{ matrix.arch.qemu.name }}" ${{ matrix.compile.tests }}
#
# test-on-windows-x86-x64:
# runs-on: windows-2022
# strategy:
# matrix:
# arch: [x86, x64]
# steps:
# - name: Set git cllf config
# run: |
# git config --global core.autocrlf input
# git config --global core.eol lf
# - uses: actions/checkout@v4
# with:
# submodules: true
# - uses: lukka/get-cmake@latest
# - uses: GuillaumeFalourd/setup-windows10-sdk-action@v2
# with:
# sdk-version: 26100
# - uses: actions/setup-python@v5
# with:
# python-version: "3.11"
# - name: Install msvc redist package
# run: |
# (new-object System.Net.WebClient).DownloadFile('https://github.com/abbodi1406/vcredist/releases/download/v0.73.0/VisualCppRedist_AIO_x86_x64.exe','VisualCppRedist_AIO_x86_x64.exe')
# .\VisualCppRedist_AIO_x86_x64.exe /y
# - uses: ilammy/[email protected]
# with:
# arch: ${{ matrix.arch }}
# sdk: "10.0.26100.0"
# - name: Build ${{ matrix.arch }} Release
# run: |
# CMake -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_VERSION:STRING="10.0" -DCMAKE_SYSTEM_PROCESSOR=${{ matrix.arch }} -Bout/ -G Ninja -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_BUILD_TYPE=release
# CMake --build out/ --config Release
# - name: Run tests
# run: |
# python tools\run-tests.py --engine=%cd%\out\walrus.exe
# shell: cmd
# - if: ${{ failure() }}
# uses: mxschmitt/action-tmate@v3
# timeout-minutes: 15
#
# build-test-extended-feature:
# runs-on: ubuntu-latest
# strategy:
# fail-fast: false
# matrix:
# mode: [debug, release]
# arch: [x64, x86]
# switch: [--jit, --jit-no-reg-alloc, ""]
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - name: Install Packages
# run: |
# sudo apt update
# sudo apt install -y ninja-build gcc-multilib g++-multilib
# - name: Build ${{ matrix.arch}}
# env:
# BUILD_OPTIONS: -DWALRUS_ARCH=${{ matrix.arch }} -DWALRUS_HOST=linux -DWALRUS_MODE=${{ matrix.mode }} -DWALRUS_OUTPUT=shell -DWALRUS_EXTENDED_FEATURES=ON -GNinja
# run: |
# cmake -H. -Bout/extended $BUILD_OPTIONS
# ninja -Cout/extended
# - name: Run Tests
# run: |
# $RUNNER --engine="$GITHUB_WORKSPACE/out/extended/walrus" ${{ matrix.switch }} wasm-test-extended
#
# build-test-performance-x64_x86:
# strategy:
# fail-fast: false
# matrix:
# arch:
# - x64
# - x86
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - name: Install Packages
# run: |
# sudo apt update
# sudo apt install -y ninja-build gcc-multilib g++-multilib
# sudo pip install pandas
# sudo pip install py-markdown-table
# sudo pip install tqdm
# - name: Build ${{ matrix.arch }}
# env:
# BUILD_OPTIONS: -DWALRUS_ARCH=${{ matrix.arch }} -DWALRUS_HOST=linux -DWALRUS_MODE=release -DWALRUS_OUTPUT=shell -GNinja
# run: |
# cmake -H. -Bout/linux/${{ matrix.arch }} $BUILD_OPTIONS
# ninja -Cout/linux/${{ matrix.arch }}
# - name: Run Tests
# run: |
# test/wasmBenchmarker/benchmark.py --engines $GITHUB_WORKSPACE/out/linux/${{ matrix.arch }}/walrus --iterations 2 --verbose --summary --results i j2i n2i j n2j
#
# built-test-wasm-c-api:
# runs-on: ubuntu-latest
# strategy:
# fail-fast: false
# matrix:
# mode: [debug, release]
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - name: Install Packages
# run: |
# sudo apt update
# sudo apt install -y ninja-build gcc-multilib g++-multilib
# - name: Build x64
# env:
# BUILD_OPTIONS: -DWALRUS_MODE=${{ matrix.mode }} -DWALRUS_ARCH=x64 -DWALRUS_OUTPUT=api_test -GNinja
# run: |
# cmake -H. -Bout/api_test $BUILD_OPTIONS
# ninja -Cout/api_test
# cp third_party/wasm-c-api/example/*.wasm out/api_test/.
# - name: Run Tests
# working-directory: ./out/api_test
# run: |
# ./wasm-c-api-callback
# ./wasm-c-api-global
# ./wasm-c-api-hello
# ./wasm-c-api-memory
# ./wasm-c-api-multi
# ./wasm-c-api-table
coverity-scan:
if: ${{ github.repository == 'Samsung/walrus' && github.event_name == 'push' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install Packages
run: |
sudo apt update
sudo apt install -y ninja-build gcc-multilib g++-multilib
- name: Download Coverity Tool
env:
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
run: |
wget -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=$TOKEN&project=Samsung-walrus" -O cov-analysis-linux64.tar.gz
mkdir cov-analysis-linux64
tar xzf cov-analysis-linux64.tar.gz --strip 1 -C cov-analysis-linux64
- name: Build
env:
BUILD_OPTIONS: -DWALRUS_MODE=release -DWALRUS_OUTPUT=shell -GNinja
run: |
export PATH=$GITHUB_WORKSPACE/cov-analysis-linux64/bin:$PATH
cmake -H. -Bout/coverity_scan $BUILD_OPTIONS
cov-build --dir cov-int ninja -Cout/coverity_scan
- name: Submit
env:
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
NOTI_MAIL: ${{ secrets.COVERITY_SCAN_MAIL }}
run: |
tar czvf walrus.tgz cov-int
curl \
--form token=$TOKEN \
--form email=$NOTI_MAIL \
--form [email protected] \
--form version="0.0.1" \
--form description="walrus coverity scan" \
https://scan.coverity.com/builds?project=Samsung-walrus