d88b6734e9
Note the pthread usage is due to the Worker support, which is gated out on Windows so there should be no need to link with pthreads on MinGW.
280 lines
6 KiB
YAML
280 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
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: jirutka/setup-alpine@v1
|
|
with:
|
|
arch: x86
|
|
packages: "build-base make cmake"
|
|
- name: build
|
|
shell: alpine.sh {0}
|
|
run: |
|
|
make
|
|
- name: stats
|
|
shell: alpine.sh {0}
|
|
run: |
|
|
make stats
|
|
- name: test
|
|
shell: alpine.sh {0}
|
|
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:
|
|
- 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: |
|
|
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
|