summaryrefslogtreecommitdiff
path: root/.github/workflows/build.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r--.github/workflows/build.yml68
1 files changed, 65 insertions, 3 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 9af12a89..d2a87574 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -10,7 +10,7 @@ on:
jobs:
lint:
- name: Lint
+ name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/setup-python@v1
@@ -21,11 +21,11 @@ jobs:
run: pip3 install flake8==3.7.8
- run: flake8
build:
- name: Build
+ name: build
runs-on: ${{ matrix.os }}
strategy:
matrix:
- os: [ubuntu-16.04, macos-latest, windows-latest]
+ os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/setup-python@v1
with:
@@ -33,11 +33,25 @@ jobs:
- uses: actions/checkout@v1
with:
submodules: true
+ - name: install ninja (linux)
+ run: sudo apt-get install ninja-build
+ if: matrix.os == 'ubuntu-latest'
+ - name: install ninja (osx)
+ run: brew install ninja
+ if: matrix.os == 'macos-latest'
+ - name: install ninja (win)
+ run: choco install ninja
+ if: matrix.os == 'windows-latest'
- name: mkdir
run: mkdir -p out
- name: cmake
+ run: cmake .. -G Ninja
+ working-directory: out
+ if: matrix.os != 'windows-latest'
+ - name: cmake (windows)
run: cmake ..
working-directory: out
+ if: matrix.os == 'windows-latest'
- name: build
run: cmake --build out
- name: unittests
@@ -46,3 +60,51 @@ jobs:
run: cmake --build out --target run-c-api-tests
- name: tests
run: cmake --build out --target run-tests
+ emscripten:
+ name: emscripten
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v1
+ with:
+ submodules: true
+ - name: build
+ run: |
+ docker run -di --name emscripten -v $(pwd):/src trzeci/emscripten:sdk-incoming-64bit bash
+ docker exec emscripten emconfigure cmake .
+ docker exec emscripten emmake make -j 2
+
+ build-asan:
+ name: asan
+ runs-on: ubuntu-latest
+ env:
+ USE_NINJA: "1"
+ steps:
+ - uses: actions/setup-python@v1
+ with:
+ python-version: '3.x'
+ - uses: actions/checkout@v1
+ with:
+ submodules: true
+ - run: sudo apt-get install ninja-build
+ - run: make clang-debug-asan
+ - run: make clang-release-asan
+ - run: make test-clang-debug-asan
+ - run: make test-clang-release-asan
+
+ build-ubsan:
+ name: ubsan
+ runs-on: ubuntu-latest
+ env:
+ USE_NINJA: "1"
+ steps:
+ - uses: actions/setup-python@v1
+ with:
+ python-version: '3.x'
+ - uses: actions/checkout@v1
+ with:
+ submodules: true
+ - run: sudo apt-get install ninja-build
+ - run: make clang-debug-ubsan
+ - run: make clang-release-ubsan
+ - run: make test-clang-debug-ubsan
+ - run: make test-clang-release-ubsan