Update coverage bot to Ubuntu 24.04 x86 runner (#735) #803
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Native Builds | |
| on: | |
| pull_request: | |
| branches: [main] | |
| push: | |
| branches: [main] | |
| release: | |
| types: [published] | |
| schedule: | |
| - cron: '30 20 * * *' # Warning: Timezone dep - 20:00 is 1:00 | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| name: ${{ matrix.name }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # Ubuntu Arm Jobs | |
| - name: ubu24-arm-gcc12-clang-repl-20 | |
| os: ubuntu-24.04-arm | |
| compiler: gcc-12 | |
| clang-runtime: '20' | |
| cling: Off | |
| cppyy: Off | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host;NVPTX" | |
| - name: ubu24-arm-gcc12-clang-repl-19-cppyy | |
| os: ubuntu-24.04-arm | |
| compiler: gcc-12 | |
| clang-runtime: '19' | |
| cling: Off | |
| cppyy: On | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host;NVPTX" | |
| - name: ubu24-arm-gcc12-clang-repl-18-cppyy | |
| os: ubuntu-24.04-arm | |
| compiler: gcc-12 | |
| clang-runtime: '18' | |
| cling: Off | |
| cppyy: On | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host;NVPTX" | |
| - name: ubu24-arm-gcc9-clang18-cling-cppyy | |
| os: ubuntu-24.04-arm | |
| compiler: gcc-9 | |
| clang-runtime: '18' | |
| cling: On | |
| cppyy: Off | |
| cling-version: '1.2' | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host;NVPTX" | |
| # Ubuntu X86 Jobs | |
| - name: ubu24-x86-gcc12-clang-repl-20-coverage | |
| os: ubuntu-24.04 | |
| compiler: gcc-12 | |
| clang-runtime: '20' | |
| cling: Off | |
| cppyy: Off | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host;NVPTX" | |
| coverage: true | |
| - name: ubu24-x86-gcc12-clang-repl-20 | |
| os: ubuntu-24.04 | |
| compiler: gcc-12 | |
| clang-runtime: '20' | |
| cling: Off | |
| cppyy: Off | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host;NVPTX" | |
| - name: ubu24-x86-gcc12-clang-repl-19-cppyy | |
| os: ubuntu-24.04 | |
| compiler: gcc-12 | |
| clang-runtime: '19' | |
| cling: Off | |
| cppyy: On | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host;NVPTX" | |
| - name: ubu24-x86-gcc12-clang-repl-18-cppyy | |
| os: ubuntu-24.04 | |
| compiler: gcc-12 | |
| clang-runtime: '18' | |
| cling: Off | |
| cppyy: On | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host;NVPTX" | |
| - name: ubu24-x86-gcc9-clang18-cling-cppyy | |
| os: ubuntu-24.04 | |
| compiler: gcc-9 | |
| clang-runtime: '18' | |
| cling: On | |
| cppyy: Off | |
| cling-version: '1.2' | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host;NVPTX" | |
| # MacOS Arm Jobs | |
| - name: osx15-arm-clang-clang-repl-20 | |
| os: macos-15 | |
| compiler: clang | |
| clang-runtime: '20' | |
| cling: Off | |
| cppyy: Off | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host" | |
| - name: osx15-arm-clang-clang-repl-19-cppyy | |
| os: macos-15 | |
| compiler: clang | |
| clang-runtime: '19' | |
| cling: Off | |
| cppyy: On | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host" | |
| - name: osx15-arm-clang-clang-repl-18-cppyy | |
| os: macos-15 | |
| compiler: clang | |
| clang-runtime: '18' | |
| cling: Off | |
| cppyy: On | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host" | |
| - name: osx15-arm-clang-clang18-cling-cppyy | |
| os: macos-15 | |
| compiler: clang | |
| clang-runtime: '18' | |
| cling: On | |
| cppyy: On | |
| cling-version: '1.2' | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host;NVPTX" | |
| # MacOS X86 Jobs | |
| - name: osx15-x86-clang-clang-repl-20 | |
| os: macos-15-intel | |
| compiler: clang | |
| clang-runtime: '20' | |
| cling: Off | |
| cppyy: Off | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host" | |
| - name: osx15-x86-clang-clang-repl-19-cppyy | |
| os: macos-15-intel | |
| compiler: clang | |
| clang-runtime: '19' | |
| cling: Off | |
| cppyy: On | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host" | |
| - name: osx15-x86-clang-clang-repl-18-cppyy | |
| os: macos-15-intel | |
| compiler: clang | |
| clang-runtime: '18' | |
| cling: Off | |
| cppyy: On | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host" | |
| - name: osx15-x86-clang-clang18-cling-cppyy | |
| os: macos-15-intel | |
| compiler: clang | |
| clang-runtime: '18' | |
| cling: On | |
| cppyy: On | |
| cling-version: '1.2' | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host;NVPTX" | |
| # Windows Arm Jobs | |
| - name: win11-msvc-clang-repl-20 | |
| os: windows-11-arm | |
| compiler: msvc | |
| clang-runtime: '20' | |
| cling: Off | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host;NVPTX" | |
| - name: win11-msvc-clang18-cling | |
| os: windows-11-arm | |
| compiler: msvc | |
| clang-runtime: '18' | |
| cling: On | |
| cling-version: '1.2' | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host;NVPTX" | |
| # Windows X86 Jobs | |
| - name: win2025-msvc-clang-repl-20 | |
| os: windows-2025 | |
| compiler: msvc | |
| clang-runtime: '20' | |
| cling: Off | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host;NVPTX" | |
| - name: win2025-msvc-clang18-cling | |
| os: windows-2025 | |
| compiler: msvc | |
| clang-runtime: '18' | |
| cling: On | |
| cling-version: '1.2' | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host;NVPTX" | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.11' | |
| - name: Save PR Info | |
| uses: ./.github/actions/Miscellaneous/Save_PR_Info | |
| - name: Restore cached LLVM-${{ matrix.clang-runtime }} and ${{ matrix.cling == 'On' && 'Cling' || 'Clang-REPL' }} build | |
| uses: actions/cache/restore@v4 | |
| id: cache | |
| with: | |
| path: | | |
| llvm-project | |
| ${{ matrix.cling=='On' && 'cling' || '' }} | |
| key: ${{ env.CLING_HASH }}-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}-clang-${{ matrix.clang-runtime }}.x-patch-${{ hashFiles(format('patches/llvm/clang{0}-*.patch', matrix.clang-runtime)) || 'none' }} | |
| - name: Setup default Build Type | |
| uses: ./.github/actions/Miscellaneous/Select_Default_Build_Type | |
| - name: Setup compiler | |
| uses: ./.github/actions/Miscellaneous/Setup_Compiler | |
| - name: Install dependencies | |
| uses: ./.github/actions/Miscellaneous/Install_Dependencies | |
| - name: Build LLVM-${{ matrix.clang-runtime }} and ${{ matrix.cling == 'On' && 'Cling' || 'Clang-REPL' }} | |
| uses: ./.github/actions/Build_LLVM | |
| with: | |
| cache-hit: ${{ steps.cache.outputs.cache-hit }} | |
| - name: Cache LLVM-${{ matrix.clang-runtime }} and ${{ matrix.cling == 'On' && 'Cling' || 'Clang-REPL' }} build | |
| uses: actions/cache/save@v4 | |
| if: ${{ steps.cache.outputs.cache-hit != 'true' }} | |
| with: | |
| path: | | |
| llvm-project | |
| ${{ matrix.cling=='On' && 'cling' || '' }} | |
| key: ${{ steps.cache.outputs.cache-primary-key }} | |
| - name: Setup code coverage | |
| if: ${{ success() && (matrix.coverage == true) }} | |
| run: | | |
| sudo apt install lcov | |
| echo "CODE_COVERAGE=1" >> $GITHUB_ENV | |
| echo "BUILD_TYPE=Debug" >> $GITHUB_ENV | |
| - name: Build and test CppInterOp | |
| uses: ./.github/actions/Build_and_Test_CppInterOp | |
| - name: Prepare code coverage report | |
| if: ${{ success() && (matrix.coverage == true) }} | |
| run: | | |
| # Create lcov report | |
| # capture coverage info | |
| vers="${CC#*-}" | |
| lcov --directory build/ --capture --output-file coverage.info --gcov-tool /usr/bin/gcov-${vers} --ignore-errors mismatch | |
| lcov --remove coverage.info '/usr/*' ${{ github.workspace }}'/llvm-project/*' --ignore-errors unused --output-file coverage.info | |
| lcov --remove coverage.info '${{ github.workspace }}/unittests/*' --ignore-errors unused --output-file coverage.info | |
| lcov --remove coverage.info '${{ github.workspace }}/build/*' --ignore-errors unused --output-file coverage.info | |
| # output coverage data for debugging (optional) | |
| lcov --list coverage.info | |
| rm -rf ./build/ | |
| - name: Upload to codecov.io | |
| if: ${{ success() && (matrix.coverage == true) }} | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| files: ./coverage.info | |
| fail_ci_if_error: true | |
| verbose: true | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| - name: Build and test cppyy | |
| uses: ./.github/actions/Build_and_Test_cppyy | |
| - name: Show debug info | |
| if: ${{ failure() }} | |
| run: | | |
| export | |
| echo $GITHUB_ENV | |
| - name: Setup tmate session | |
| if: ${{ failure() && runner.debug }} | |
| uses: mxschmitt/action-tmate@v3 | |
| # When debugging increase to a suitable value! | |
| timeout-minutes: 30 |