Skip to content

Add more test jobs in Github Action (#1632) #85

Add more test jobs in Github Action (#1632)

Add more test jobs in Github Action (#1632) #85

Workflow file for this run

name: facebook/hermes/build
on:
push:
pull_request:
branches:
- static_h
jobs:
macos:
runs-on: macos-15
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: 16.2
- uses: actions/[email protected]
with:
path: hermes
- name: Install dependencies
run: brew install cmake ninja
- name: Build macOS CLI
run: |-
cmake -S hermes -B build -G Ninja ${RELEASE_FLAGS} -DHERMES_ENABLE_DEBUGGER=False
cmake --build ./build --target hermes hvm hbcdump hermesc check-hermes
cmake -S hermes -B build_hdb -G Ninja ${RELEASE_FLAGS}
cmake --build ./build_hdb --target hdb check-hermes
env:
RELEASE_FLAGS: "-DCMAKE_BUILD_TYPE=Release -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=True -DCMAKE_OSX_ARCHITECTURES=x86_64;arm64 \\ -DBUILD_SHARED_LIBS=OFF -DHERMES_BUILD_SHARED_JSI=OFF"
- name: Create CLI tarball
run: |-
mkdir output staging
cp build/bin/hermes build/bin/hvm build/bin/hbcdump \
build/bin/hermesc build_hdb/bin/hdb staging
tar -C staging -czvf output/${TAR_NAME} .
shasum -a 256 output/${TAR_NAME} > output/${TAR_NAME}.sha256
env:
TAR_NAME: hermes-cli-darwin.tar.gz
- uses: actions/[email protected]
with:
name: macos-hermes
path: output
test-macos-test262:
runs-on: macos-15
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: 16.2
- uses: actions/[email protected]
with:
path: hermes
- name: Setup dependencies
run: |-
brew install cmake ninja
# Check out test262 at a pinned revision to reduce flakiness
git clone https://github.com/tc39/test262
cd test262
git checkout 62626e083bd506124aac6c799464d76c2c42851b
- name: Run Hermes tests and test262 with Intl
run: |-
cmake -S hermes -B build -GNinja -DHERMES_ENABLE_INTL=ON -DCMAKE_BUILD_TYPE=Debug
cmake --build ./build
cmake --build ./build --target check-hermes
python3 hermes/utils/test_runner.py --test-intl test262/test -b build/bin
test-linux:
runs-on: ubuntu-24.04
steps:
- name: Install dependencies
run: |-
sudo apt update
sudo apt install -y git openssh-client cmake build-essential \
libicu-dev zip python3 ninja-build
- uses: actions/[email protected]
with:
path: hermes
- name: Run Hermes regression tests
run: |-
cmake -S hermes -GNinja -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build --target check-hermes all
test-linux-arm64:
runs-on: ubuntu-24.04-arm
steps:
- name: Install dependencies
run: |-
sudo apt update
sudo apt install -y git openssh-client cmake build-essential \
libicu-dev zip python3 ninja-build
- uses: actions/[email protected]
with:
path: hermes
- name: Run Hermes regression tests
run: |-
cmake -S hermes -GNinja -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build --target check-hermes all
- name: Run Hermes regression tests (JIT enabled)
run: |-
cmake -S hermes -GNinja -B build -DCMAKE_BUILD_TYPE=Debug -DHERMESVM_ALLOW_JIT=2
export LIT_HERMES_EXTRA_FLAGS="-Xforce-jit"
cmake --build build --target check-hermes all
test-linux-test262:
runs-on: ubuntu-24.04
steps:
- uses: actions/[email protected]
with:
path: hermes
- name: Setup dependencies
run: |-
sudo apt update
sudo apt install -y git openssh-client cmake build-essential \
libreadline-dev libicu-dev zip python3 ninja-build
# Check out test262 at a pinned revision to reduce flakiness
git clone https://github.com/tc39/test262
cd test262
git checkout 62626e083bd506124aac6c799464d76c2c42851b
- name: Run test262 with Intl
run: |-
cmake -S hermes -GNinja -B build -DHERMES_ENABLE_INTL=ON -DCMAKE_CXX_FLAGS=-O2 -DCMAKE_C_FLAGS=-O2 -DCMAKE_BUILD_TYPE=Debug
cmake --build ./build
# Not running Hermes test until more of Intl is built out:
# toLocaleLowerCase and toLocaleUpperCase are the two main ones.
# cmake --build ./build --target check-hermes
python3 hermes/utils/test_runner.py --test-intl test262/test -b build/bin
test-linux-arm-test262:
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/[email protected]
with:
path: hermes
- name: Setup dependencies
run: |-
sudo apt update
sudo apt install -y git openssh-client cmake build-essential \
libreadline-dev libicu-dev zip python3 ninja-build
# Check out test262 at a pinned revision to reduce flakiness
git clone https://github.com/tc39/test262
cd test262
git checkout 62626e083bd506124aac6c799464d76c2c42851b
- name: Run test262 with Intl
run: |-
cmake -S hermes -GNinja -B build -DHERMES_ENABLE_INTL=ON -DCMAKE_CXX_FLAGS=-O2 -DCMAKE_C_FLAGS=-O2 -DCMAKE_BUILD_TYPE=Debug
cmake --build ./build
# Not running Hermes test until more of Intl is built out:
# toLocaleLowerCase and toLocaleUpperCase are the two main ones.
# cmake --build ./build --target check-hermes
python3 hermes/utils/test_runner.py --test-intl test262/test -b build/bin
- name: Run test262 with Intl (JIT enabled)
run: |-
cmake -S hermes -GNinja -B build -DHERMES_ENABLE_INTL=ON -DCMAKE_CXX_FLAGS=-O2 -DCMAKE_C_FLAGS=-O2 -DHERMESVM_ALLOW_JIT=2 -DCMAKE_BUILD_TYPE=Debug
cmake --build ./build
# Not running Hermes test until more of Intl is built out:
# toLocaleLowerCase and toLocaleUpperCase are the two main ones.
# cmake --build ./build --target check-hermes
python3 hermes/utils/test_runner.py --test-intl test262/test -b build/bin --vm-args="-Xforce-jit"