summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/build_and_test.yml40
-rw-r--r--.github/workflows/code_coverage.yml82
2 files changed, 82 insertions, 40 deletions
diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml
index 040efe4..c4fd60d 100644
--- a/.github/workflows/build_and_test.yml
+++ b/.github/workflows/build_and_test.yml
@@ -23,18 +23,6 @@ jobs:
steps:
- uses: actions/checkout@v2
- - name: Install gcovr
- if: runner.os != 'Windows'
- run: |
- python3 -m pip install gcovr==5.0
-
- - name: Install OpenCppCoverage
- if: runner.os == 'Windows'
- shell: bash
- run: |
- choco install opencppcoverage
- echo "C:/Program Files/OpenCppCoverage" >> $GITHUB_PATH
-
- name: Build
if: runner.os != 'Windows'
run: |
@@ -49,38 +37,10 @@ jobs:
cmake --build build --config $BUILD_TYPE
- name: Run tests
- if: runner.os != 'Windows'
working-directory: ${{ github.workspace }}/build
run: |
ctest -V -C $BUILD_TYPE
- - name: Generate coverage on Linux
- if: runner.os == 'Linux'
- working-directory: ${{ github.workspace }}/build
- run: |
- gcovr -j $(nproc) --delete --root ../source/ --exclude '\.\./source/test/' --print-summary --xml-pretty --xml coverage.xml .
-
- - name: Generate coverage on macOS
- if: runner.os == 'macOS'
- working-directory: ${{ github.workspace }}/build
- run: |
- gcovr -j 2 --delete --root ../source/ --exclude '\.\./source/test/' --print-summary --xml-pretty --xml coverage.xml .
-
- - name: Run tests & generate coverage on Windows
- if: runner.os == 'Windows'
- shell: bash
- working-directory: ${{ github.workspace }}/build
- run: |
- OpenCppCoverage.exe --sources source\\* --excluded_sources source\\test\\* --export_type cobertura:coverage.xml --cover_children -- ctest -V -C $BUILD_TYPE
-
- - name: Upload coverage to Codecov
- uses: codecov/codecov-action@v2
- with:
- files: ./build/coverage.xml
- flags: ${{ runner.os }}
- name: ${{ runner.os }} build
- fail_ci_if_error: false
-
integration:
strategy:
matrix:
diff --git a/.github/workflows/code_coverage.yml b/.github/workflows/code_coverage.yml
new file mode 100644
index 0000000..5c84fb5
--- /dev/null
+++ b/.github/workflows/code_coverage.yml
@@ -0,0 +1,82 @@
+name: Code coverage
+
+on:
+ push:
+ branches: [ stable ]
+ pull_request:
+ branches: [ stable ]
+ schedule:
+ - cron: '0 0 */16 * *'
+ workflow_dispatch:
+
+env:
+ BUILD_TYPE: Debug
+
+jobs:
+ build:
+ strategy:
+ matrix:
+ os: [ ubuntu-latest, macos-latest, windows-2019 ]
+
+ runs-on: ${{ matrix.os }}
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Install gcovr
+ if: runner.os != 'Windows'
+ run: |
+ python3 -m pip install gcovr==5.0
+
+ - name: Install OpenCppCoverage
+ if: runner.os == 'Windows'
+ shell: bash
+ run: |
+ choco install opencppcoverage
+ echo "C:/Program Files/OpenCppCoverage" >> $GITHUB_PATH
+
+ - name: Build
+ if: runner.os != 'Windows'
+ run: |
+ cmake -D CMAKE_BUILD_TYPE=$BUILD_TYPE -B build -S .
+ cmake --build build --config $BUILD_TYPE
+
+ - name: Build with Visual Studio
+ if: runner.os == 'Windows'
+ shell: bash
+ run: |
+ cmake -B build -S .
+ cmake --build build --config $BUILD_TYPE
+
+ - name: Run tests
+ if: runner.os != 'Windows'
+ working-directory: ${{ github.workspace }}/build
+ run: |
+ ctest -V -C $BUILD_TYPE
+
+ - name: Generate coverage on Linux
+ if: runner.os == 'Linux'
+ working-directory: ${{ github.workspace }}/build
+ run: |
+ gcovr -j $(nproc) --delete --root ../source/ --exclude '\.\./source/test/' --print-summary --xml-pretty --xml coverage.xml .
+
+ - name: Generate coverage on macOS
+ if: runner.os == 'macOS'
+ working-directory: ${{ github.workspace }}/build
+ run: |
+ gcovr -j 2 --delete --root ../source/ --exclude '\.\./source/test/' --print-summary --xml-pretty --xml coverage.xml .
+
+ - name: Run tests & generate coverage on Windows
+ if: runner.os == 'Windows'
+ shell: bash
+ working-directory: ${{ github.workspace }}/build
+ run: |
+ OpenCppCoverage.exe --sources source\\* --excluded_sources source\\test\\* --export_type cobertura:coverage.xml --cover_children -- ctest -V -C $BUILD_TYPE
+
+ - name: Upload coverage to Codecov
+ uses: codecov/codecov-action@v2
+ with:
+ files: ./build/coverage.xml
+ flags: ${{ runner.os }}
+ name: ${{ runner.os }} build
+ fail_ci_if_error: false