Skip to content

Merge pull request #75 from ni-mheppner/feature/add_ni_package_cmake #33

Merge pull request #75 from ni-mheppner/feature/add_ni_package_cmake

Merge pull request #75 from ni-mheppner/feature/add_ni_package_cmake #33

Workflow file for this run

name: ni-media CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- name: "Windows 2022"
os: windows-2022
build_type: Release
pcm_tests: ON
- name: "MacOS 12 (xc13)"
os: macos-12
build_type: Release
pcm_tests: ON
set_xcode_version_cmd: xcversion select 13.4.1
- name: "MacOS 11 (xc12)"
os: macos-11
build_type: Release
pcm_tests: ON
set_xcode_version_cmd: xcversion select 12.4
- name: "MacOS 11 (xc11)"
os: macos-11
build_type: Release
pcm_tests: ON
set_xcode_version_cmd: xcversion select 11.7
- name: "Ubuntu 20.04 (GCC-10)"
os: ubuntu-20.04
build_type: Release
pcm_tests: ON
cc: "gcc-10"
cxx: "g++-10"
- name: "Ubuntu 20.04 (GCC-9)"
os: ubuntu-20.04
build_type: Release
pcm_tests: ON
cc: "gcc-9"
cxx: "g++-9"
- name: "Ubuntu 20.04 (GCC-8)"
os: ubuntu-20.04
build_type: Release
pcm_tests: ON
cc: "gcc-8"
cxx: "g++-8"
- name: "Ubuntu 20.04 (GCC-7)"
os: ubuntu-20.04
build_type: Release
pcm_tests: ON
cc: "gcc-7"
cxx: "g++-7"
- name: "Code-Coverage (Ubuntu 20.04, GCC-9)"
os: ubuntu-20.04
build_type: Coverage
pcm_tests: OFF
code_coverage: true
cc: "gcc-9"
cxx: "g++-9"
gcov: "gcov-9"
steps:
- name: Set xcode version
if: matrix.config.set_xcode_version_cmd != null
run: |
${{ matrix.config.set_xcode_version_cmd }}
- name: Set compiler version
if: matrix.config.cc != null && matrix.config.cxx != null
run: |
sudo apt install ${{ matrix.config.cc }} ${{ matrix.config.cxx }}
echo "CC=${{ matrix.config.cc }}" >> $GITHUB_ENV
echo "CXX=${{ matrix.config.cxx }}" >> $GITHUB_ENV
- name: Set GCOV version
if: matrix.config.gcov != null
run: |
echo "GCOV=${{ matrix.config.gcov }}" >> $GITHUB_ENV
- name: Checkout source
uses: actions/checkout@v3
with:
lfs: true
- name: Install vcpkg
run: |
git clone https://github.com/Microsoft/vcpkg.git
./vcpkg/bootstrap-vcpkg.sh
- name: Configure CMake + Install Dependencies
run: |
cmake -B ${{ github.workspace }}/build . -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} -DNIMEDIA_TREAT_WARNINGS_AS_ERRORS=ON -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake -DNIMEDIA_PCM_TESTS=${{ matrix.config.pcm_tests }}
- name: Build
run: |
cmake --build ${{ github.workspace }}/build --config ${{ matrix.config.build_type }}
- name: Test
working-directory: ${{ github.workspace }}/build
run: |
git lfs pull -X \"\"
ctest --verbose -C ${{ matrix.config.build_type }} --timeout 900
- name: Generate Code-Coverage results
if: matrix.config.code_coverage == true
working-directory: ${{ github.workspace }}/build
run: |
sudo apt-get update
sudo apt-get install -y lcov
lcov --version
echo $(which ${GCOV})
lcov --gcov-tool $(which ${GCOV}) -d . -c -o coverage.info
- name: Upload code coverage results
if: matrix.config.code_coverage == true
uses: codecov/codecov-action@v3.1.0
with:
files: ${{ github.workspace }}/build/coverage.info
verbose: true
gcov: true
gcov_ignore: test