name: coverage on: push permissions: {} jobs: coverage: runs-on: ubuntu-latest name: C++ Code coverage analysis continue-on-error: true env: TZ: America/Los_Angeles steps: - name: Checkout uses: actions/checkout@v4 - run: sudo apt-get update - name: Install additional dependencies run: sudo apt-get install -y gettext cmake libxslt-dev xsltproc ninja-build libboost-all-dev libgtk-3-dev guile-2.2-dev libgwengui-gtk3-dev libaqbanking-dev libofx-dev libdbi-dev libdbd-sqlite3 libwebkit2gtk-4.0-dev googletest lcov - name: Install language packs. run: sudo apt-get --reinstall install -y language-pack-en language-pack-fr - run: | echo "ROOT_DIR=$GITHUB_WORKSPACE/.." >> $GITHUB_ENV - name: Create Directories run: | pwd mkdir $ROOT_DIR/inst mkdir build - name: Configure GnuCash run: | cd build cmake -G Ninja -DWITH_PYTHON=ON -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/inst $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=Debug -DCOVERAGE=ON - name: Build and test GnuCash with coverage analysis run: | cd build ninja ninja lcov-initialize ninja check ninja -k 0 lcov-collect ninja lcov-generate-html env: CTEST_OUTPUT_ON_FAILURE: Off - name: prepare_upload if: success() run: | mkdir build/github-pages mv build/Coverage-HTML build/github-pages/ chmod -v -R +rX "build/github-pages" | while read line; do echo "::warning title=Invalid file permissions automatically fixed::$line" done - name: Upload pages uses: actions/upload-pages-artifact@v3 if: success() with: path: ${{ github.workspace }}/build/github-pages deploy-coverage: needs: coverage if: github.repository == 'gnucash/gnucash' permissions: pages: write id-token: write environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest steps: - name: Publish id: deployment uses: actions/deploy-pages@v4