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-examples: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: build run: | mkdir build cd build cmake -DBUILD_EXAMPLES=ON -DCMAKE_VERBOSE_MAKEFILE=ON .. cd .. cmake --build build -j$(getconf _NPROCESSORS_ONLN) - name: test run: | ldd build/hello ldd build/hello_module ldd build/test_fib ./build/hello ./build/hello_module ./build/test_fib cp build/fib.so examples/ cp build/point.so examples/ cp build/bjson.so tests/ ./build/qjs examples/test_fib.js ./build/qjs examples/test_point.js ./build/qjs tests/test_bjson.js linux-shared: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: build run: | mkdir build cd build cmake -DBUILD_SHARED_LIBS=ON .. cd .. cmake --build build -j$(getconf _NPROCESSORS_ONLN) ldd build/qjs - name: stats run: | ./build/qjs -qd linux-asan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: submodules: true - 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 - name: test 262 env: ASAN_OPTIONS: halt_on_error=1 run: | time ./build/run-test262 -m -c test262.conf -a linux-msan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: submodules: true - 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 with: submodules: true - 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 - name: test 262 env: UBSAN_OPTIONS: halt_on_error=1 run: | time ./build/run-test262 -m -c test262.conf -a 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-examples: runs-on: macos-latest steps: - uses: actions/checkout@v3 - name: build run: | mkdir build cd build cmake -DBUILD_EXAMPLES=ON .. cd .. cmake --build build -j$(getconf _NPROCESSORS_ONLN) - name: test run: | otool -L build/hello otool -L build/hello_module otool -L build/test_fib ./build/hello ./build/hello_module ./build/test_fib cp build/fib.so examples/ cp build/point.so examples/ cp build/bjson.so tests/ ./build/qjs examples/test_fib.js ./build/qjs examples/test_point.js ./build/qjs tests/test_bjson.js macos-shared: runs-on: macos-latest steps: - uses: actions/checkout@v3 - name: build run: | mkdir build cd build cmake -DBUILD_SHARED_LIBS=ON .. cd .. cmake --build build -j$(getconf _NPROCESSORS_ONLN) otool -L build/qjs - name: stats run: | ./build/qjs -qd 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: 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 windows-mingw-shared: runs-on: windows-latest defaults: run: shell: msys2 {0} steps: - uses: actions/checkout@v3 - name: Setup MSYS2 uses: msys2/setup-msys2@v2 with: install: >- git make pacboy: >- cmake:p ninja:p toolchain:p - name: build run: | mkdir build cd build cmake -DBUILD_SHARED_LIBS=ON .. cd .. cmake --build build -j$(getconf _NPROCESSORS_ONLN) ldd build/qjs - name: stats run: | ./build/qjs -qd