269 lines
7 KiB
YAML
269 lines
7 KiB
YAML
name: ci
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- '**'
|
|
- '!.gitignore'
|
|
- '!LICENSE'
|
|
- '!TODO'
|
|
- '!doc/**'
|
|
- '!examples/**'
|
|
- '.github/workflows/ci.yml'
|
|
push:
|
|
branches:
|
|
- master
|
|
|
|
jobs:
|
|
linux:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
buildType: [Debug, Release]
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
submodules: true
|
|
- name: build
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
cmake -DCMAKE_BUILD_TYPE=${{matrix.buildType}} ..
|
|
cd ..
|
|
cmake --build build -j$(getconf _NPROCESSORS_ONLN)
|
|
- name: stats
|
|
run: |
|
|
./build/qjs -qd
|
|
- name: test
|
|
run: |
|
|
./build/qjs tests/test_bigint.js
|
|
./build/qjs tests/test_closure.js
|
|
./build/qjs tests/test_language.js
|
|
./build/qjs tests/test_builtin.js
|
|
./build/qjs tests/test_loop.js
|
|
./build/qjs tests/test_std.js
|
|
./build/qjs tests/test_worker.js
|
|
- name: test 262
|
|
if: ${{ matrix.buildType == 'Release' }}
|
|
run: |
|
|
time ./build/run-test262 -m -c test262.conf -a
|
|
linux-asan:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: build
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
cmake -DCONFIG_ASAN=ON ..
|
|
cd ..
|
|
cmake --build build -j$(getconf _NPROCESSORS_ONLN)
|
|
- name: test
|
|
env:
|
|
ASAN_OPTIONS: halt_on_error=1
|
|
run: |
|
|
./build/qjs tests/test_bigint.js
|
|
./build/qjs tests/test_closure.js
|
|
./build/qjs tests/test_language.js
|
|
./build/qjs tests/test_builtin.js
|
|
./build/qjs tests/test_loop.js
|
|
./build/qjs tests/test_std.js
|
|
./build/qjs tests/test_worker.js
|
|
linux-msan:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: build
|
|
env:
|
|
CC: clang
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
cmake -DCONFIG_MSAN=ON ..
|
|
cd ..
|
|
cmake --build build -j$(getconf _NPROCESSORS_ONLN)
|
|
- name: test
|
|
env:
|
|
MSAN_OPTIONS: halt_on_error=1
|
|
run: |
|
|
./build/qjs tests/test_bigint.js
|
|
./build/qjs tests/test_closure.js
|
|
./build/qjs tests/test_language.js
|
|
./build/qjs tests/test_builtin.js
|
|
./build/qjs tests/test_loop.js
|
|
./build/qjs tests/test_std.js
|
|
./build/qjs tests/test_worker.js
|
|
linux-ubsan:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: build
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
cmake -DCONFIG_UBSAN=ON ..
|
|
cd ..
|
|
cmake --build build -j$(getconf _NPROCESSORS_ONLN)
|
|
- name: test
|
|
env:
|
|
UBSAN_OPTIONS: halt_on_error=1
|
|
run: |
|
|
./build/qjs tests/test_bigint.js
|
|
./build/qjs tests/test_closure.js
|
|
./build/qjs tests/test_language.js
|
|
./build/qjs tests/test_builtin.js
|
|
./build/qjs tests/test_loop.js
|
|
./build/qjs tests/test_std.js
|
|
./build/qjs tests/test_worker.js
|
|
|
|
macos:
|
|
runs-on: macos-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
buildType: [Debug, Release]
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: build
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
cmake -DCMAKE_BUILD_TYPE=${{matrix.buildType}} ..
|
|
cd ..
|
|
cmake --build build -j$(getconf _NPROCESSORS_ONLN)
|
|
- name: stats
|
|
run: |
|
|
./build/qjs -qd
|
|
- name: test
|
|
run: |
|
|
./build/qjs tests/test_bigint.js
|
|
./build/qjs tests/test_closure.js
|
|
./build/qjs tests/test_language.js
|
|
./build/qjs tests/test_builtin.js
|
|
./build/qjs tests/test_loop.js
|
|
./build/qjs tests/test_std.js
|
|
./build/qjs tests/test_worker.js
|
|
macos-asan:
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: build
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
cmake -DCONFIG_ASAN=ON ..
|
|
cd ..
|
|
cmake --build build -j$(getconf _NPROCESSORS_ONLN)
|
|
- name: test
|
|
env:
|
|
ASAN_OPTIONS: halt_on_error=1
|
|
run: |
|
|
./build/qjs tests/test_bigint.js
|
|
./build/qjs tests/test_closure.js
|
|
./build/qjs tests/test_language.js
|
|
./build/qjs tests/test_builtin.js
|
|
./build/qjs tests/test_loop.js
|
|
./build/qjs tests/test_std.js
|
|
./build/qjs tests/test_worker.js
|
|
macos-ubsan:
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: build
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
cmake -DCONFIG_UBSAN=ON ..
|
|
cd ..
|
|
cmake --build build -j$(getconf _NPROCESSORS_ONLN)
|
|
- name: test
|
|
env:
|
|
UBSAN_OPTIONS: halt_on_error=1
|
|
run: |
|
|
./build/qjs tests/test_bigint.js
|
|
./build/qjs tests/test_closure.js
|
|
./build/qjs tests/test_language.js
|
|
./build/qjs tests/test_builtin.js
|
|
./build/qjs tests/test_loop.js
|
|
./build/qjs tests/test_std.js
|
|
./build/qjs tests/test_worker.js
|
|
|
|
windows-mingw:
|
|
runs-on: windows-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
sys:
|
|
- mingw64
|
|
- ucrt64
|
|
defaults:
|
|
run:
|
|
shell: msys2 {0}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
submodules: true
|
|
- name: Setup MSYS2
|
|
uses: msys2/setup-msys2@v2
|
|
with:
|
|
msystem: ${{matrix.sys}}
|
|
install: >-
|
|
git
|
|
make
|
|
pacboy: >-
|
|
toolchain:p
|
|
- name: build
|
|
run: |
|
|
make -j$(getconf _NPROCESSORS_ONLN) CONFIG_WERROR=y CONFIG_MINGW=y
|
|
- name: stats
|
|
run: |
|
|
make -j$(getconf _NPROCESSORS_ONLN) CONFIG_WERROR=y CONFIG_MINGW=y qjs
|
|
./qjs -qd
|
|
- name: test
|
|
run: |
|
|
make -j$(getconf _NPROCESSORS_ONLN) CONFIG_WERROR=y CONFIG_MINGW=y test
|
|
|
|
windows-mingw-cmake:
|
|
runs-on: windows-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
buildType: [Debug, Release]
|
|
sys:
|
|
- mingw64
|
|
- ucrt64
|
|
defaults:
|
|
run:
|
|
shell: msys2 {0}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Setup MSYS2
|
|
uses: msys2/setup-msys2@v2
|
|
with:
|
|
msystem: ${{matrix.sys}}
|
|
install: >-
|
|
git
|
|
make
|
|
pacboy: >-
|
|
cmake:p
|
|
ninja:p
|
|
toolchain:p
|
|
- name: build
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
cmake -DCMAKE_BUILD_TYPE=${{matrix.buildType}} ..
|
|
cd ..
|
|
cmake --build build -j$(getconf _NPROCESSORS_ONLN)
|
|
- name: stats
|
|
run: |
|
|
./build/qjs -qd
|
|
- name: test
|
|
run: |
|
|
./build/qjs tests/test_bigint.js
|
|
./build/qjs tests/test_closure.js
|
|
./build/qjs tests/test_language.js
|
|
./build/qjs tests/test_builtin.js
|
|
./build/qjs tests/test_loop.js
|
|
./build/qjs tests/test_std.js
|