blob: 6465db7d42e58938ee8718457087aea0dce73d56 [file] [log] [blame]
name: CI
on:
create:
tags:
push:
branches:
- master
pull_request:
jobs:
lint:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/setup-python@v1
with:
python-version: '3.x'
- uses: actions/checkout@v1
- name: install tools
run: pip3 install flake8==3.7.8
- run: flake8
build:
name: build
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/setup-python@v1
with:
python-version: '3.x'
- 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
run: cmake --build out --target run-unittests
- name: c-api-tests
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:1.39.10-upstream bash
docker exec emscripten emcc -v
docker exec emscripten emcmake cmake .
docker exec emscripten make -j 2 VERBOSE=1
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