Skip to content

enable JSON schema validation in CI #42

enable JSON schema validation in CI

enable JSON schema validation in CI #42

name: build
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
build-and-test:
name: test on ${{ matrix.os }} with ${{ matrix.cxx }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-22.04
cxx: g++
coverage: "yes"
- os: ubuntu-22.04
cxx: clang++
coverage: "no"
# - os: macos-latest
# cxx: clang++
# coverage: "no"
# Do not auto-cancel other runners if one fails
fail-fast: false
env:
CXX: ${{ matrix.cxx }}
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_TOKEN }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: dependencies
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: sudo apt-get install zlib1g-dev libisal-dev libdeflate-dev
- name: dependencies
if: ${{ matrix.os == 'macos-latest' }}
run: brew install isa-l libdeflate
- name: make test
run: |
export NPROCS=$(python3 -c 'import os; print(len(os.sched_getaffinity(0)))')
make -j ${NPROCS} test VERBOSE=yes DEBUG=yes SANITIZE=yes COVERAGE=${{ matrix.coverage }}
- name: make regression
run: |
export NPROCS=$(python3 -c 'import os; print(len(os.sched_getaffinity(0)))')
python3 -m pip install jsonschema
make -j ${NPROCS} regression VERBOSE=yes DEBUG=yes SANITIZE=yes COVERAGE=no
- name: sphinx
run: python3 -m pip install sphinx
- name: make install
run: make install VERBOSE=yes DEBUG=yes SANITIZE=yes COVERAGE=no PREFIX=${PWD}/install
# Coverage statistics
- name: setup coveralls
if: ${{ matrix.coverage == 'yes' }}
run: |
python3 -m pip install cpp-coveralls
coveralls --exclude tests --build-root "${PWD}" --gcov-options '\-lpbc'
- name: examples
run: make -C examples EXE=${PWD}/install/bin/adapterremoval3