chore: release v0.3.0 #83
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: push | |
jobs: | |
linux: | |
name: Linux ${{ matrix.config.name }} | |
runs-on: ubuntu-20.04 # https://github.com/actions/virtual-environments | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- { name: GCC 10, CC: gcc-10, CXX: g++-10, flags: ""} | |
- { name: Clang 11, CC: clang-11, CXX: clang++-11, flags: "" } | |
- { name: Clang 12, CC: clang-12, CXX: clang++-12, flags: "" } | |
- { name: ASan, CC: clang-12, CXX: clang++-12, flags: "-DRTVAMP_ENABLE_SANITIZER_ADDRESS=ON" } | |
- { name: LSan, CC: clang-12, CXX: clang++-12, flags: "-DRTVAMP_ENABLE_SANITIZER_LEAK=ON" } | |
# Memory sanitizer requires all the code (including libc++) to be MSan-instrumented otherwise it reports false positives | |
# - { name: MSan, CC: clang-12, CXX: clang++-12, flags: "-DRTVAMP_ENABLE_SANITIZER_MEMORY=ON" } | |
- { name: TSan, CC: clang-12, CXX: clang++-12, flags: "-DRTVAMP_ENABLE_SANITIZER_THREAD=ON" } | |
- { name: UBSan, CC: clang-12, CXX: clang++-12, flags: "-DRTVAMP_ENABLE_SANITIZER_UNDEFINED_BEHAVIOR=ON" } | |
- { name: Coverage, CC: gcc-10, CXX: g++-10, flags: "-DRTVAMP_ENABLE_COVERAGE=ON" } | |
- { name: Amalgamation, CC: gcc-10, CXX: g++-10, flags: "-DRTVAMP_ENABLE_AMALGAMATION=ON" } | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install requirements | |
run: | | |
sudo apt update | |
sudo apt install -y libbenchmark-dev libsndfile1-dev vamp-plugin-sdk | |
pip install conan~=1.59 cpp-coveralls quom | |
- uses: actions/cache@v3 | |
with: | |
path: ~/.conan/data | |
key: linux-conan-${{ matrix.config.name }} | |
- name: Compile and run tests | |
env: | |
CC: ${{ matrix.config.CC }} | |
CXX: ${{ matrix.config.CXX }} | |
run: | | |
mkdir build | |
cd build | |
cmake \ | |
-DRTVAMP_ENABLE_CONAN=ON \ | |
-DRTVAMP_BUILD_BENCHMARKS=ON \ | |
-DRTVAMP_BUILD_EXAMPLES=ON \ | |
-DRTVAMP_BUILD_TESTS=ON \ | |
${{ matrix.config.flags }} \ | |
.. | |
cmake --build . | |
- name: Upload coverage results to coveralls.io | |
if: ${{ github.ref == 'refs/heads/master' && matrix.config.name == 'Coverage' }} | |
env: | |
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} | |
run: | | |
coveralls \ | |
-E '.*/3rdparty/.*' \ | |
-E '.*/benchmarks/.*' \ | |
-E '.*/build/.*' \ | |
-E '.*/examples/.*' \ | |
-E '.*/tests/.*' \ | |
--gcov-options '\-lp'; | |
macos: | |
name: macOS ${{ matrix.config.name }} | |
runs-on: ${{ matrix.config.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- { name: GCC 10, os: macos-11, CC: gcc-10, CXX: g++-10 } | |
- { name: GCC 11, os: macos-11, CC: gcc-11, CXX: g++-11 } | |
# - { name: Clang 13, os: macos-11, CC: clang, CXX: clang++ } # AppleClang 13 does not support C++20 | |
steps: | |
- uses: actions/checkout@v4 | |
# - name: Install requirements | |
# run: brew install catch2 | |
- name: Compile and run tests | |
env: | |
CC: ${{ matrix.config.CC }} | |
CXX: ${{ matrix.config.CXX }} | |
# skip tests due to problems with catch2 | |
run: | | |
mkdir build | |
cd build | |
cmake \ | |
-DRTVAMP_BUILD_EXAMPLES=OFF \ | |
-DRTVAMP_BUILD_TESTS=OFF \ | |
.. | |
cmake --build . | |
windows: | |
name: Windows ${{ matrix.config.name }} | |
runs-on: ${{ matrix.config.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- { name: Visual Studio 17 2022, os: windows-2022 } | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install requirements | |
run: pip install conan~=1.59 | |
- uses: actions/cache@v3 | |
with: | |
path: ~/.conan/data | |
key: windows-conan-${{ matrix.config.name }} | |
- name: Compile and run tests | |
run: | | |
mkdir build | |
cd build | |
cmake -DRTVAMP_ENABLE_CONAN=ON -DRTVAMP_BUILD_EXAMPLES=ON -DRTVAMP_BUILD_TESTS=ON .. | |
cmake --build . --config RelWithDebInfo |