.github/workflows/codecov.yml: Initial Codecov.io workflow.

Building in the project root directory so Codecov.io finds the
coverage files. Not sure if it'd work with a separate build/
directory...

Note that the `lcov` package is needed for rom-properties' built-in
coverage target. It technically isn't needed for Codecov.io, but
the build scripts will fail if it's missing.

Root codecov.yml: Ignore extlib/.

NOTE: libromdata is currently built as a shared library in coverage
builds, so LD_LIBRARY_PATH is set in .github/workflows/codecov.yml .
This commit is contained in:
David Korth 2023-10-28 10:33:02 -04:00
parent 115065b333
commit 14ba9ca6e7
2 changed files with 26 additions and 0 deletions

24
.github/workflows/codecov.yml vendored Normal file
View File

@ -0,0 +1,24 @@
name: Codecov
on: [push, pull_request]
jobs:
run:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install required packages
run: sudo apt-get install --yes cmake ninja-build libcurl4-openssl-dev zlib1g-dev libpng-dev libjpeg-dev nettle-dev pkg-config libtinyxml2-dev gettext libseccomp-dev libzstd-dev liblz4-dev liblzo2-dev qtbase5-dev qttools5-dev-tools extra-cmake-modules libkf5kio-dev libkf5widgetsaddons-dev libkf5filemetadata-dev libglib2.0-dev libgtk-3-dev libcairo2-dev libthunarx-3-dev libgsound-dev libnautilus-extension-dev libgtk-4-dev lcov
- name: Run CMake
run: cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_TESTING=ON -DENABLE_COVERAGE=ON -G Ninja
- name: Run Ninja
run: ninja
- name: Run tests
run: ctest -V -C Release
env:
LD_LIBRARY_PATH: ${{ github.workspace }}/lib
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
gcov: true

2
codecov.yml Normal file
View File

@ -0,0 +1,2 @@
ignore:
- "extlib/"