00d104e519
run-test262 required pthreads, so let's add that. In addition, in MinGW, clock_gettime is implemented in the pthreads library, so we want to link it too. This doesn't get us anywhere closer to building with ClangCL on Windows, but hey, another target that required some tweaking...
282 lines
6 KiB
YAML
282 lines
6 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: |
|
|
make BUILD_TYPE=${{matrix.buildType}}
|
|
- name: stats
|
|
run: |
|
|
make stats
|
|
- name: test
|
|
run: |
|
|
make test
|
|
- name: test 262
|
|
if: ${{ matrix.buildType == 'Release' }}
|
|
run: |
|
|
time make test262
|
|
linux-32bits:
|
|
runs-on: ubuntu-latest
|
|
defaults:
|
|
run:
|
|
shell: alpine.sh {0}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: jirutka/setup-alpine@v1
|
|
with:
|
|
arch: x86
|
|
packages: "build-base make cmake"
|
|
- name: build
|
|
run: |
|
|
make
|
|
- name: stats
|
|
run: |
|
|
make stats
|
|
- name: test
|
|
run: |
|
|
make test
|
|
linux-examples:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: build
|
|
run: |
|
|
make BUILD_EXAMPLES=ON
|
|
- 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: |
|
|
make BUILD_SHARED_LIBS=ON
|
|
ldd build/qjs
|
|
- name: stats
|
|
run: |
|
|
make stats
|
|
linux-asan:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
submodules: true
|
|
- name: build
|
|
run: |
|
|
make CONFIG_ASAN=ON
|
|
- name: test
|
|
env:
|
|
ASAN_OPTIONS: halt_on_error=1
|
|
run: |
|
|
make test
|
|
- name: test 262
|
|
env:
|
|
ASAN_OPTIONS: halt_on_error=1
|
|
run: |
|
|
time make test262
|
|
linux-msan:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
submodules: true
|
|
- name: build
|
|
env:
|
|
CC: clang
|
|
run: |
|
|
make CONFIG_MSAN=ON
|
|
- name: test
|
|
env:
|
|
MSAN_OPTIONS: halt_on_error=1
|
|
run: |
|
|
make test
|
|
linux-ubsan:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
submodules: true
|
|
- name: build
|
|
run: |
|
|
make CONFIG_UBSAN=ON
|
|
- name: test
|
|
env:
|
|
UBSAN_OPTIONS: halt_on_error=1
|
|
run: |
|
|
make test
|
|
- name: test 262
|
|
env:
|
|
UBSAN_OPTIONS: halt_on_error=1
|
|
run: |
|
|
time make test262
|
|
|
|
macos:
|
|
runs-on: macos-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
buildType: [Debug, Release]
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: build
|
|
run: |
|
|
make BUILD_TYPE=${{matrix.buildType}}
|
|
- name: stats
|
|
run: |
|
|
make stats
|
|
- name: test
|
|
run: |
|
|
make test
|
|
macos-examples:
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: build
|
|
run: |
|
|
make BUILD_EXAMPLES=ON
|
|
- 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: |
|
|
make BUILD_SHARED_LIBS=ON
|
|
otool -L build/qjs
|
|
- name: stats
|
|
run: |
|
|
make stats
|
|
macos-asan:
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: build
|
|
run: |
|
|
make CONFIG_ASAN=ON
|
|
- name: test
|
|
env:
|
|
ASAN_OPTIONS: halt_on_error=1
|
|
run: |
|
|
make test
|
|
macos-ubsan:
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: build
|
|
run: |
|
|
make CONFIG_UBSAN=ON
|
|
- name: test
|
|
env:
|
|
UBSAN_OPTIONS: halt_on_error=1
|
|
run: |
|
|
make test
|
|
|
|
windows-mingw:
|
|
runs-on: windows-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
buildType: [Debug, Release]
|
|
sys:
|
|
- mingw32
|
|
- mingw64
|
|
- clang64
|
|
- 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: |
|
|
make BUILD_TYPE=${{matrix.buildType}}
|
|
- name: stats
|
|
run: |
|
|
make stats
|
|
ldd build/qjs
|
|
- name: test
|
|
run: |
|
|
make test
|
|
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: |
|
|
make BUILD_SHARED_LIBS=ON
|
|
ldd build/qjs
|
|
- name: stats
|
|
run: |
|
|
make stats
|