Add more test jobs in Github Action (#1632) #85
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: 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" |