Implement Windows UWP and ClangCL build test on github action #1917
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ES-Actions | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
env: | |
RUNNER: tools/run-tests.py | |
jobs: | |
check-tidy: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install Packages | |
run: | | |
sudo add-apt-repository "deb http://mirrors.kernel.org/ubuntu/ focal main universe" | |
sudo apt-get update | |
sudo apt-get install -y clang-format-6.0 | |
- name: Test | |
run: tools/check_tidy.py | |
build-on-macos: | |
runs-on: macos-12 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install Packages | |
run: | | |
brew update | |
brew install cmake ninja pkg-config icu4c | |
- name: Build x64 | |
env: | |
BUILD_OPTIONS: -DESCARGOT_ARCH=x64 -DESCARGOT_HOST=darwin -DESCARGOT_MODE=debug -DESCARGOT_LIBICU_SUPPORT_WITH_DLOPEN=OFF -DESCARGOT_TEMPORAL=ON -DESCARGOT_TCO=ON -DESCARGOT_TEST=ON -DESCARGOT_OUTPUT=shell -GNinja | |
run: | | |
export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig" | |
cmake -H. -Bout/mac/x64 $BUILD_OPTIONS | |
ninja -Cout/mac/x64 | |
./tools/run-tests.py --engine="./out/mac/x64/escargot" new-es | |
build-test-on-android: | |
runs-on: macos-12 | |
strategy: | |
matrix: | |
arch: [x86, x86_64] | |
api: [28] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install Packages | |
run: | | |
brew update | |
brew install cmake pkg-config | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: "zulu" | |
java-version: 17 | |
- name: Gradle cache | |
uses: gradle/gradle-build-action@v2 | |
- name: AVD cache | |
uses: actions/cache@v3 | |
id: avd-cache | |
with: | |
path: | | |
~/.android/avd/* | |
~/.android/adb* | |
key: avd-${{ matrix.api }}-${{ matrix.arch }} | |
- name: Create AVD and generate snapshot for caching | |
if: steps.avd-cache.outputs.cache-hit != 'true' | |
uses: reactivecircus/android-emulator-runner@v2 | |
with: | |
api-level: ${{ matrix.api }} | |
arch: ${{ matrix.arch }} | |
force-avd-creation: false | |
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none | |
disable-animations: false | |
script: echo "Generated AVD snapshot for caching." | |
- name: Run tests | |
uses: reactivecircus/android-emulator-runner@v2 | |
with: | |
api-level: ${{ matrix.api }} | |
arch: ${{ matrix.arch }} | |
force-avd-creation: false | |
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none | |
disable-animations: true | |
script: cd build/android/;./gradlew connectedDebugAndroidTest | |
build-by-clang: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install Packages | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y ninja-build gcc-multilib g++-multilib libicu-dev | |
- name: Patch WABT | |
working-directory: ./third_party/wasm/wabt | |
run: | | |
cp ../../../tools/test/wasm-js/wabt_patch . | |
patch -p0 < wabt_patch | |
- name: Build x86 | |
env: | |
BUILD_OPTIONS: -DESCARGOT_ARCH=x86 -DESCARGOT_HOST=linux -DESCARGOT_MODE=debug -DESCARGOT_WASM=ON -DESCARGOT_TEMPORAL=ON -DESCARGOT_TCO=ON -DESCARGOT_TEST=ON -DESCARGOT_OUTPUT=shell -GNinja | |
run: | | |
CC=clang CXX=clang++ cmake -H. -Bout/clang/x86 $BUILD_OPTIONS | |
ninja -Cout/clang/x86 | |
- name: Build x64 | |
env: | |
BUILD_OPTIONS: -DESCARGOT_ARCH=x64 -DESCARGOT_HOST=linux -DESCARGOT_MODE=debug -DESCARGOT_WASM=ON -DESCARGOT_TEMPORAL=ON -DESCARGOT_TCO=ON -DESCARGOT_TEST=ON -DESCARGOT_OUTPUT=shell -GNinja | |
run: | | |
CC=clang CXX=clang++ cmake -H. -Bout/clang/x64 $BUILD_OPTIONS | |
ninja -Cout/clang/x64 | |
./tools/run-tests.py --engine="./out/clang/x64/escargot" new-es | |
build-on-armv7: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Build in arm32 container | |
uses: uraimo/[email protected] | |
with: | |
arch: armv7 | |
distro: ubuntu_latest | |
# Install deps into the container. With the token, the container will be cached | |
# The image is cached publically like a package | |
githubToken: ${{ github.token }} | |
install: | | |
apt-get update | |
apt-get install -y cmake build-essential ninja-build pkg-config python3 libicu-dev clang-12 | |
#FIXME fix clang version as to 12 | |
ln -s /usr/bin/clang-12 /usr/bin/clang | |
ln -s /usr/bin/clang++-12 /usr/bin/clang++ | |
run: | | |
CC=clang CXX=clang++ cmake -H. -Bout/release -DESCARGOT_ARCH=arm -DESCARGOT_HOST=linux -DESCARGOT_MODE=release -DESCARGOT_TEMPORAL=ON -DESCARGOT_TCO=ON -DESCARGOT_TEST=ON -DESCARGOT_OUTPUT=shell -GNinja | |
ninja -Cout/release | |
python3 ./tools/run-tests.py --engine="./out/release/escargot" new-es | |
build-on-aarch64: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Build in arm64 container | |
uses: uraimo/[email protected] | |
with: | |
arch: aarch64 | |
distro: ubuntu_latest | |
# Install deps into the container. With the token, the container will be cached | |
# The image is cached publically like a package | |
githubToken: ${{ github.token }} | |
install: | | |
apt-get update | |
apt-get install -y cmake build-essential ninja-build pkg-config python3 libicu-dev clang-12 | |
#FIXME fix clang version as to 12 | |
ln -s /usr/bin/clang-12 /usr/bin/clang | |
ln -s /usr/bin/clang++-12 /usr/bin/clang++ | |
run: | | |
CC=clang CXX=clang++ cmake -H. -Bout/release -DESCARGOT_ARCH=aarch64 -DESCARGOT_HOST=linux -DESCARGOT_MODE=release -DESCARGOT_TEMPORAL=ON -DESCARGOT_TCO=ON -DESCARGOT_TEST=ON -DESCARGOT_OUTPUT=shell -GNinja | |
ninja -Cout/release | |
python3 ./tools/run-tests.py --engine="./out/release/escargot" new-es | |
test-on-windows-x86-clang-cl: | |
runs-on: windows-2022 | |
strategy: | |
matrix: | |
arch: [x86] | |
steps: | |
- name: Set git cllf config | |
run: | | |
git config --global core.autocrlf input | |
git config --global core.eol lf | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- uses: szenius/[email protected] | |
with: | |
timezoneWindows: "Pacific Standard Time" | |
- uses: lukka/get-cmake@latest | |
- uses: GuillaumeFalourd/[email protected] | |
with: | |
sdk-version: 20348 | |
- uses: actions/setup-python@v4 | |
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.20348.0" | |
- name: Build ${{ matrix.arch }} Release | |
run: | | |
CMake -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_VERSION:STRING="10.0" -DCMAKE_SYSTEM_PROCESSOR=x86 -DESCARGOT_ARCH=x86 -DESCARGOT_MODE=release -Bout/ -DESCARGOT_HOST=windows -DESCARGOT_OUTPUT=shell -DESCARGOT_LIBICU_SUPPORT=ON -DESCARGOT_LIBICU_SUPPORT_WITH_DLOPEN=NO -DESCARGOT_THREADING=ON -DESCARGOT_TCO=ON -DESCARGOT_TEST=ON -G Ninja -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_BUILD_TYPE=release -DCMAKE_C_FLAGS="-m32" -DCMAKE_CXX_FLAGS="-m32" | |
CMake --build out/ --config Release | |
# windows internal ICU doesn't support Temporal and intl402 well | |
# github action windows runner only have 2 CPUs. that's why I disable Atomics(timeout occured with some tests) | |
- name: Run test262 | |
run: | | |
set GC_FREE_SPACE_DIVISOR=1 | |
pip install chardet | |
python tools\run-tests.py --engine=%cd%\out\escargot.exe test262 --extra-arg="--skip Temporal --skip intl402 --skip Atomics" | |
shell: cmd | |
- name: Run octane | |
run: | | |
copy test\octane\*.js | |
dir | |
.\out\escargot.exe run.js | |
- if: ${{ failure() }} | |
uses: mxschmitt/action-tmate@v3 | |
timeout-minutes: 15 | |
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@v3 | |
with: | |
submodules: true | |
- uses: szenius/[email protected] | |
with: | |
timezoneWindows: "Pacific Standard Time" | |
- uses: lukka/get-cmake@latest | |
- uses: GuillaumeFalourd/[email protected] | |
with: | |
sdk-version: 20348 | |
- uses: actions/setup-python@v4 | |
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.20348.0" | |
- name: Build ${{ matrix.arch }} Release | |
run: | | |
CMake -G "Visual Studio 16 2019" -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_VERSION:STRING="10.0" -DCMAKE_SYSTEM_PROCESSOR=${{ matrix.arch }} -DESCARGOT_ARCH=${{ matrix.arch }} -DESCARGOT_MODE=release -Bout/ -DESCARGOT_HOST=windows -DESCARGOT_OUTPUT=shell -DESCARGOT_LIBICU_SUPPORT=ON -DESCARGOT_LIBICU_SUPPORT_WITH_DLOPEN=OFF -DESCARGOT_THREADING=ON -DESCARGOT_TCO=ON -DESCARGOT_TEST=ON -G Ninja -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_BUILD_TYPE=release | |
CMake --build out/ --config Release | |
# windows internal ICU doesn't support Temporal and intl402 well | |
# github action windows runner only have 2 CPUs. that's why I disable Atomics(timeout occured with some tests) | |
- name: Run test262 | |
run: | | |
set GC_FREE_SPACE_DIVISOR=1 | |
pip install chardet | |
python tools\run-tests.py --engine=%cd%\out\escargot.exe test262 --extra-arg="--skip Temporal --skip intl402 --skip Atomics" | |
shell: cmd | |
- name: Run octane | |
run: | | |
copy test\octane\*.js | |
dir | |
.\out\escargot.exe run.js | |
- if: ${{ failure() }} | |
uses: mxschmitt/action-tmate@v3 | |
timeout-minutes: 15 | |
build-on-windows-x64-uwp-x86-shared: | |
runs-on: windows-2022 | |
steps: | |
- name: Set git cllf config | |
run: | | |
git config --global core.autocrlf input | |
git config --global core.eol lf | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- uses: lukka/get-cmake@latest | |
- uses: GuillaumeFalourd/[email protected] | |
with: | |
sdk-version: 20348 | |
- uses: ilammy/[email protected] | |
with: | |
arch: x64 | |
sdk: "10.0.20348.0" | |
uwp: true | |
- name: Build x64 UWP Release | |
run: | | |
CMake -G "Visual Studio 17 2022" -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION:STRING="10.0" -DCMAKE_SYSTEM_PROCESSOR=x64 -DESCARGOT_ARCH=x64 -DESCARGOT_MODE=release -Bout/win64_release_uwp/ -DESCARGOT_HOST=windows -DESCARGOT_OUTPUT=shell -DESCARGOT_LIBICU_SUPPORT=ON -DESCARGOT_LIBICU_SUPPORT_WITH_DLOPEN=OFF -DESCARGOT_TEST=ON | |
cmake --build out\win64_release_uwp --config Release | |
shell: cmd | |
- uses: ilammy/[email protected] | |
with: | |
arch: x86 | |
sdk: "10.0.20348.0" | |
- name: Build x86 DLL Release | |
run: | | |
CMake -G "Visual Studio 16 2019" -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_VERSION:STRING="10.0" -DCMAKE_SYSTEM_PROCESSOR=x86 -DESCARGOT_ARCH=x86 -DESCARGOT_MODE=release -Bout/win32_release_shared/ -DESCARGOT_HOST=windows -DESCARGOT_OUTPUT=shared_lib -DESCARGOT_LIBICU_SUPPORT=ON -DESCARGOT_LIBICU_SUPPORT_WITH_DLOPEN=OFF -DESCARGOT_THREADING=ON -DESCARGOT_TCO=ON -DESCARGOT_TEST=ON -G Ninja -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_BUILD_TYPE=release | |
CMake --build out/win32_release_shared --config Release | |
shell: cmd | |
- if: ${{ failure() }} | |
uses: mxschmitt/action-tmate@v3 | |
timeout-minutes: 15 | |
build-test-on-x86-release: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
tc: ['octane', 'v8 chakracore spidermonkey', 'jetstream-only-simple-parallel-1', 'jetstream-only-simple-parallel-2 jsc-stress', 'jetstream-only-simple-parallel-3 jetstream-only-cdjs'] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install Packages | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y ninja-build gcc-multilib g++-multilib python2 | |
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1 | |
- name: Install ICU | |
run: | | |
wget http://mirrors.kernel.org/ubuntu/pool/main/i/icu/libicu-dev_70.1-2ubuntu1_i386.deb | |
dpkg -X libicu-dev_70.1-2ubuntu1_i386.deb $GITHUB_WORKSPACE/icu32 | |
- name: Build x86 | |
env: | |
BUILD_OPTIONS: -DESCARGOT_HOST=linux -DESCARGOT_ARCH=x86 -DESCARGOT_MODE=release -DESCARGOT_THREADING=ON -DESCARGOT_LIBICU_SUPPORT_WITH_DLOPEN=OFF -DESCARGOT_TEMPORAL=ON -DESCARGOT_TCO=ON -DESCARGOT_TEST=ON -DESCARGOT_OUTPUT=shell -GNinja | |
run: | | |
export CXXFLAGS="-I$GITHUB_WORKSPACE/icu32/usr/include" | |
export LDFLAGS="-L$GITHUB_WORKSPACE/icu32/usr/lib/i386-linux-gnu -Wl,-rpath=$GITHUB_WORKSPACE/icu32/usr/lib/i386-linux-gnu" | |
export PKG_CONFIG_PATH=$GITHUB_WORKSPACE/icu32/usr/lib/i386-linux-gnu/pkgconfig | |
cmake -H. -Bout/release/x86 $BUILD_OPTIONS | |
ninja -Cout/release/x86 | |
- name: Run release-x86 test | |
env: | |
GC_FREE_SPACE_DIVISOR: 1 | |
run: $RUNNER --arch=x86 --engine="$GITHUB_WORKSPACE/out/release/x86/escargot" ${{ matrix.tc }} | |
build-test-on-x64-release: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
tc: ['new-es octane v8', 'chakracore spidermonkey'] | |
build_opt: ['', '-DESCARGOT_THREADING=ON -DESCARGOT_TCO=ON', '-DESCARGOT_SMALL_CONFIG=ON -DESCARGOT_USE_CUSTOM_LOGGING=ON'] | |
exclude: | |
# exclude octane, v8 due to low performance incurred by SMALL_CONFIG | |
- tc: 'new-es octane v8' | |
build_opt: '-DESCARGOT_SMALL_CONFIG=ON -DESCARGOT_USE_CUSTOM_LOGGING=ON' | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install Packages | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y ninja-build libicu-dev python2 | |
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1 | |
- name: Build x64 | |
env: | |
BUILD_OPTIONS: -DESCARGOT_HOST=linux -DESCARGOT_ARCH=x64 -DESCARGOT_MODE=release -DESCARGOT_TEMPORAL=ON -DESCARGOT_TCO=ON -DESCARGOT_TEST=ON -DESCARGOT_OUTPUT=shell -GNinja | |
run: | | |
cmake -H. -Bout/release/x64 $BUILD_OPTIONS ${{ matrix.build_opt }} | |
ninja -Cout/release/x64 | |
- name: Run release-x64 test | |
env: | |
GC_FREE_SPACE_DIVISOR: 1 | |
run: | | |
# set locale | |
sudo locale-gen en_US.UTF-8 | |
export LANG=en_US.UTF-8 | |
locale | |
$RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/release/x64/escargot" ${{ matrix.tc }} | |
build-test-on-x86-x64-debug: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install Packages | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y ninja-build gcc-multilib g++-multilib | |
- name: Install ICU | |
run: | | |
wget http://mirrors.kernel.org/ubuntu/pool/main/i/icu/libicu-dev_70.1-2ubuntu1_i386.deb | |
dpkg -X libicu-dev_70.1-2ubuntu1_i386.deb $GITHUB_WORKSPACE/icu32 | |
wget http://mirrors.kernel.org/ubuntu/pool/main/i/icu/libicu-dev_70.1-2ubuntu1_amd64.deb | |
dpkg -X libicu-dev_70.1-2ubuntu1_amd64.deb $GITHUB_WORKSPACE/icu64 | |
- name: Build x86/x64 | |
env: | |
BUILD_OPTIONS_X86: -DESCARGOT_HOST=linux -DESCARGOT_ARCH=x86 -DESCARGOT_MODE=debug -DESCARGOT_TEMPORAL=ON -DESCARGOT_TCO=ON -DESCARGOT_TEST=ON -DESCARGOT_LIBICU_SUPPORT_WITH_DLOPEN=OFF -DESCARGOT_OUTPUT=shell -GNinja | |
BUILD_OPTIONS_X64: -DESCARGOT_HOST=linux -DESCARGOT_ARCH=x64 -DESCARGOT_MODE=debug -DESCARGOT_TEMPORAL=ON -DESCARGOT_TCO=ON -DESCARGOT_TEST=ON -DESCARGOT_OUTPUT=shell -GNinja | |
run: | | |
export CXXFLAGS="-I$GITHUB_WORKSPACE/icu32/usr/include" | |
export LDFLAGS="-L$GITHUB_WORKSPACE/icu32/usr/lib/i386-linux-gnu -Wl,-rpath=$GITHUB_WORKSPACE/icu32/usr/lib/i386-linux-gnu" | |
export PKG_CONFIG_PATH=$GITHUB_WORKSPACE/icu32/usr/lib/i386-linux-gnu/pkgconfig | |
cmake -H. -Bout/debug/x86 $BUILD_OPTIONS_X86 | |
export CXXFLAGS="-I$GITHUB_WORKSPACE/icu64/usr/include" | |
export LDFLAGS="-L$GITHUB_WORKSPACE/icu64/usr/lib/x86_64-linux-gnu -Wl,-rpath=$GITHUB_WORKSPACE/icu64/usr/lib/x86_64-linux-gnu" | |
export PKG_CONFIG_PATH=$GITHUB_WORKSPACE/icu64/usr/lib/x86_64-linux-gnu/pkgconfig | |
cmake -H. -Bout/debug/x64 $BUILD_OPTIONS_X64 | |
ninja -Cout/debug/x86 | |
ninja -Cout/debug/x64 | |
- name: Run debug-mode test | |
run: | | |
$RUNNER --arch=x86 --engine="$GITHUB_WORKSPACE/out/debug/x86/escargot" modifiedVendorTest regression-tests new-es intl sunspider-js | |
$RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/debug/x64/escargot" modifiedVendorTest regression-tests new-es intl sunspider-js | |
build-test-debugger: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install Packages | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y ninja-build | |
- name: Build | |
env: | |
BUILD_OPTIONS: -DESCARGOT_HOST=linux -DESCARGOT_ARCH=x64 -DESCARGOT_MODE=debug -DESCARGOT_DEBUGGER=1 -DESCARGOT_TEMPORAL=ON -DESCARGOT_TCO=ON -DESCARGOT_TEST=ON -DESCARGOT_OUTPUT=shell -GNinja | |
run: | | |
cmake -H. -Bout/debugger $BUILD_OPTIONS | |
ninja -Cout/debugger | |
- name: Debugger Test | |
run: | | |
$RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/debugger/escargot" debugger-server-source | |
$RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/debugger/escargot" debugger-client-source | |
build-test-api: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install Packages | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y ninja-build gcc-multilib g++-multilib | |
- name: Build x86/x64 | |
env: | |
BUILD_OPTIONS_X86: -DESCARGOT_HOST=linux -DESCARGOT_ARCH=x86 -DESCARGOT_MODE=debug -DESCARGOT_THREADING=1 -DESCARGOT_DEBUGGER=1 -DESCARGOT_OUTPUT=cctest -GNinja | |
BUILD_OPTIONS_X64: -DESCARGOT_HOST=linux -DESCARGOT_ARCH=x64 -DESCARGOT_MODE=debug -DESCARGOT_THREADING=1 -DESCARGOT_DEBUGGER=1 -DESCARGOT_OUTPUT=cctest -GNinja | |
run: | | |
cmake -H. -Bout/cctest/x86 $BUILD_OPTIONS_X86 | |
ninja -Cout/cctest/x86 | |
cmake -H. -Bout/cctest/x64 $BUILD_OPTIONS_X64 | |
ninja -Cout/cctest/x64 | |
- name: Run Test | |
run: | | |
$RUNNER --arch=x86 --engine="$GITHUB_WORKSPACE/out/cctest/x86/cctest" cctest | |
$RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/cctest/x64/cctest" cctest | |
build-test-codecache: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install Packages | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y ninja-build gcc-multilib g++-multilib | |
- name: Install ICU | |
run: | | |
wget http://mirrors.kernel.org/ubuntu/pool/main/i/icu/libicu-dev_70.1-2ubuntu1_i386.deb | |
dpkg -X libicu-dev_70.1-2ubuntu1_i386.deb $GITHUB_WORKSPACE/icu32 | |
wget http://mirrors.kernel.org/ubuntu/pool/main/i/icu/libicu-dev_70.1-2ubuntu1_amd64.deb | |
dpkg -X libicu-dev_70.1-2ubuntu1_amd64.deb $GITHUB_WORKSPACE/icu64 | |
- name: Build x86 | |
env: | |
BUILD_OPTIONS: -DESCARGOT_HOST=linux -DESCARGOT_ARCH=x86 -DESCARGOT_MODE=debug -DESCARGOT_LIBICU_SUPPORT_WITH_DLOPEN=OFF -DESCARGOT_CODE_CACHE=ON -DESCARGOT_TEMPORAL=ON -DESCARGOT_TCO=ON -DESCARGOT_TEST=ON -DESCARGOT_OUTPUT=shell -GNinja | |
run: | | |
export CXXFLAGS="-I$GITHUB_WORKSPACE/icu32/usr/include" | |
export LDFLAGS="-L$GITHUB_WORKSPACE/icu32/usr/lib/i386-linux-gnu -Wl,-rpath=$GITHUB_WORKSPACE/icu32/usr/lib/i386-linux-gnu" | |
export PKG_CONFIG_PATH=$GITHUB_WORKSPACE/icu32/usr/lib/i386-linux-gnu/pkgconfig | |
cmake -H. -Bout/codecache/x86 $BUILD_OPTIONS | |
ninja -Cout/codecache/x86 | |
- name: Build x64 | |
env: | |
BUILD_OPTIONS: -DESCARGOT_HOST=linux -DESCARGOT_ARCH=x64 -DESCARGOT_MODE=debug -DESCARGOT_CODE_CACHE=ON -DESCARGOT_TEMPORAL=ON -DESCARGOT_TCO=ON -DESCARGOT_TEST=ON -DESCARGOT_OUTPUT=shell -GNinja | |
run: | | |
export CXXFLAGS="-I$GITHUB_WORKSPACE/icu64/usr/include" | |
export LDFLAGS="-L$GITHUB_WORKSPACE/icu64/usr/lib/x86_64-linux-gnu -Wl,-rpath=$GITHUB_WORKSPACE/icu64/usr/lib/x86_64-linux-gnu" | |
export PKG_CONFIG_PATH=$GITHUB_WORKSPACE/icu64/usr/lib/x86_64-linux-gnu/pkgconfig | |
cmake -H. -Bout/codecache/x64 $BUILD_OPTIONS | |
ninja -Cout/codecache/x64 | |
- name: Run x86 test | |
run: | | |
$RUNNER --arch=x86 --engine="$GITHUB_WORKSPACE/out/codecache/x86/escargot" sunspider-js | |
$RUNNER --arch=x86 --engine="$GITHUB_WORKSPACE/out/codecache/x86/escargot" sunspider-js | |
$RUNNER --arch=x86 --engine="$GITHUB_WORKSPACE/out/codecache/x86/escargot" new-es | |
$RUNNER --arch=x86 --engine="$GITHUB_WORKSPACE/out/codecache/x86/escargot" new-es | |
$RUNNER --arch=x86 --engine="$GITHUB_WORKSPACE/out/codecache/x86/escargot" octane-loading | |
$RUNNER --arch=x86 --engine="$GITHUB_WORKSPACE/out/codecache/x86/escargot" octane-loading | |
rm -rf $HOME/Escargot-cache/ | |
- name: Run x64 test | |
run: | | |
$RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/codecache/x64/escargot" sunspider-js | |
$RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/codecache/x64/escargot" sunspider-js | |
$RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/codecache/x64/escargot" new-es | |
$RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/codecache/x64/escargot" new-es | |
$RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/codecache/x64/escargot" octane-loading | |
$RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/codecache/x64/escargot" octane-loading | |
rm -rf $HOME/Escargot-cache/ | |
- name: Handle error cases | |
run: | | |
$RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/codecache/x64/escargot" sunspider-js | |
rm $HOME/Escargot-cache/3217641879501852439 | |
$RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/codecache/x64/escargot" sunspider-js | |
ls -1q $HOME/Escargot-cache/ | wc -l | |
$RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/codecache/x64/escargot" sunspider-js | |
rm $HOME/Escargot-cache/cache_list | |
$RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/codecache/x64/escargot" sunspider-js | |
build-test-wasmjs: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install Packages | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y ninja-build gcc-multilib g++-multilib | |
- name: Patch WABT | |
working-directory: ./third_party/wasm/wabt | |
run: | | |
cp ../../../tools/test/wasm-js/wabt_patch . | |
patch -p0 < wabt_patch | |
- name: Build x86 | |
env: | |
BUILD_OPTIONS: -DESCARGOT_HOST=linux -DESCARGOT_ARCH=x86 -DESCARGOT_MODE=debug -DESCARGOT_WASM=ON -DESCARGOT_TEMPORAL=ON -DESCARGOT_TCO=ON -DESCARGOT_TEST=ON -DESCARGOT_OUTPUT=shell -GNinja | |
run: | | |
cmake -H. -Bout/wasm/x86 $BUILD_OPTIONS | |
ninja -Cout/wasm/x86 | |
- name: Build x64 | |
env: | |
BUILD_OPTIONS: -DESCARGOT_HOST=linux -DESCARGOT_ARCH=x64 -DESCARGOT_MODE=debug -DESCARGOT_WASM=ON -DESCARGOT_TEMPORAL=ON -DESCARGOT_TCO=ON -DESCARGOT_TEST=ON -DESCARGOT_OUTPUT=shell -GNinja | |
run: | | |
cmake -H. -Bout/wasm/x64 $BUILD_OPTIONS | |
ninja -Cout/wasm/x64 | |
- name: Run x86 test | |
run: $RUNNER --arch=x86 --engine="$GITHUB_WORKSPACE/out/wasm/x86/escargot" wasm-js | |
- name: Run x64 test | |
run: $RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/wasm/x64/escargot" wasm-js |