name: Ubuntu 22.04 (llvm cov) on: pull_request_target: branches: - master - cpp20 jobs: build: runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v4 - name: Install Dependencies run: | sudo apt-get install openssl sudo apt-get install libssl-dev sudo apt-get install llvm # - name: Install newer Clang # run: | # wget https://apt.llvm.org/llvm.sh # chmod +x ./llvm.sh # sudo ./llvm.sh 17 - name: Run Coverage run: | mkdir build && cd build CC=clang CXX=clang++ cmake .. -DCOVERAGE_TEST=ON -DCINATRA_ENABLE_SSL=OFF make -j test_rest_rpc export LLVM_PROFILE_FILE="test_rest_rpc-%m.profraw" cd tests ./test_rest_rpc llvm-profdata merge -sparse test_rest_rpc-*.profraw -o test_rest_rpc.profdata llvm-cov show ./test_rest_rpc -instr-profile=test_rest_rpc.profdata -format=html -output-dir=../.coverage_llvm_cov -ignore-filename-regex="string_view.hpp|nonstd_any.hpp|examples|thirdparty|tests" -show-instantiations=false echo "Done!" - name: Upload Coverage Results uses: actions/upload-artifact@v4 with: name: llvm-cov path: ${{ github.workspace }}/build/.coverage_llvm_cov - name: Create Code Coverage Report working-directory: ${{github.workspace}}/build/tests run: | echo "Code Coverage Report" > tmp.log echo "for detail, [goto summary](https://github.com/${{ github.repository_owner }}/${{ github.event.repository.name }}/actions/runs/${{github.run_id}}) download Artifacts `llvm-cov`" >> tmp.log echo "\`\`\`" >> tmp.log llvm-cov report ./test_rest_rpc -instr-profile=test_rest_rpc.profdata -ignore-filename-regex="string_view.hpp|nonstd_any.hpp|examples|thirdparty|tests" -show-region-summary=false >> tmp.log echo "\`\`\`" >> tmp.log - name: Create Comment uses: peter-evans/create-or-update-comment@v2 with: issue-number: ${{ github.event.pull_request.number }} body-file: '${{github.workspace}}/build/tests/tmp.log'