Fix Thread-Safety #660
Workflow file for this run
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: ubu22-arm-gcc12-clang-repl-20-coverage | |
| os: ubuntu-22.04-arm | |
| compiler: gcc-12 | |
| clang-runtime: '20' | |
| cling: Off | |
| cppyy: Off | |
| llvm_enable_projects: "clang" | |
| llvm_targets_to_build: "host;NVPTX" | |
| coverage: true | |
| - 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 | |
| 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@v5 | |
| 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} | |
| lcov --remove coverage.info '/usr/*' "${HOME}"'/.cache/*' ${{ github.workspace }}'/llvm-project/*' ${{ github.workspace }}'/unittests/*' --output-file coverage.info | |
| # output coverage data for debugging (optional) | |
| lcov --list coverage.info | |
| - 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 | |