diff --git a/.github/workflows/root-ci-config/build_utils.py b/.github/workflows/root-ci-config/build_utils.py index 68b9bb4968399..dacfd4b792848 100755 --- a/.github/workflows/root-ci-config/build_utils.py +++ b/.github/workflows/root-ci-config/build_utils.py @@ -316,7 +316,7 @@ def remove_file_match_ext(directory: str, extension: str) -> str: extension (str): The regular expression pattern to match filenames against. """ print_fancy(f"Removing gcda files from {directory}") - log.add(f"\nfind {directory} -name \*.gcda -exec rm {{}} \;") + log.add(f"\nfind {directory} -name \\*.gcda -exec rm {{}} \\;") pattern = "." + extension count = 0 for currentdir, _, files in os.walk(directory): diff --git a/.github/workflows/root-ci-config/buildconfig/alma10-minimal.txt b/.github/workflows/root-ci-config/buildconfig/alma10-minimal.txt new file mode 100644 index 0000000000000..bb36a98d974a0 --- /dev/null +++ b/.github/workflows/root-ci-config/buildconfig/alma10-minimal.txt @@ -0,0 +1,3 @@ +builtin_vdt=ON +builtin_zlib=ON +builtin_zstd=ON diff --git a/.github/workflows/root-ci-config/buildconfig/global-minimal.txt b/.github/workflows/root-ci-config/buildconfig/global-minimal.txt new file mode 100644 index 0000000000000..7084a7d8fdc4b --- /dev/null +++ b/.github/workflows/root-ci-config/buildconfig/global-minimal.txt @@ -0,0 +1,80 @@ +alien=OFF +all=OFF +arrow=OFF +asan=OFF +asserts=OFF +builtin_cfitsio=OFF +builtin_clang=ON +builtin_cling=ON +builtin_cppzmq=ON +builtin_davix=OFF +builtin_fftw3=OFF +builtin_freetype=OFF +builtin_ftgl=OFF +builtin_gl2ps=OFF +builtin_glew=OFF +builtin_gsl=OFF +builtin_llvm=ON +builtin_lz4=OFF +builtin_lzma=OFF +builtin_nlohmannjson=OFF +builtin_openssl=OFF +builtin_openui5=ON +builtin_pcre=OFF +builtin_tbb=OFF +builtin_unuran=OFF +builtin_vc=OFF +builtin_vdt=OFF +builtin_veccore=OFF +builtin_xrootd=OFF +builtin_xxhash=OFF +builtin_zeromq=ON +builtin_zlib=OFF +builtin_zstd=OFF +ccache=ON +cefweb=OFF +check_connection=OFF +clingtest=OFF +cocoa=OFF +coverage=OFF +cuda=OFF +daos=OFF +dcache=OFF +dev=OFF +distcc=OFF +fail-on-missing=ON +fcgi=OFF +gminimal=OFF +gnuinstall=OFF +gsl_shared=OFF +gviz=OFF +jemalloc=OFF +libcxx=OFF +macos_native=OFF +memory_termination=OFF +minimal=ON +mpi=OFF +pythia8=OFF +qt6web=OFF +r=OFF +rootbench=OFF +roottest=ON +runtime_cxxmodules=ON +shadowpw=OFF +shared=ON +soversion=OFF +tcmalloc=OFF +testing=ON +tmva-gpu=OFF +tmva-cudnn=OFF +tmva-pymva=OFF +tmva-rmva=OFF +tmva-sofie=OFF +unfold=ON +unuran=ON +uring=OFF +vc=OFF +veccore=OFF +vecgeom=OFF +win_broken_tests=OFF +winrtdebug=OFF diff --git a/.github/workflows/root-ci-config/buildconfig/global.txt b/.github/workflows/root-ci-config/buildconfig/global.txt index 41becbb38f9f0..2809be1cbcade 100644 --- a/.github/workflows/root-ci-config/buildconfig/global.txt +++ b/.github/workflows/root-ci-config/buildconfig/global.txt @@ -46,7 +46,7 @@ davix=ON dcache=OFF dev=OFF distcc=OFF -fail-on-missing=On +fail-on-missing=ON fcgi=OFF fftw3=ON fitsio=ON diff --git a/.github/workflows/root-ci.yml b/.github/workflows/root-ci.yml index b50bc971b85eb..260c5060460f2 100644 --- a/.github/workflows/root-ci.yml +++ b/.github/workflows/root-ci.yml @@ -119,7 +119,7 @@ jobs: - ${{ matrix.platform }} name: | - ${{ matrix.platform }} ${{ matrix.arch }} + ${{ matrix.platform }} ${{ matrix.arch }} ${{ (github.event_name != 'schedule' && github.event_name != 'workflow_dispatch' && join( matrix.overrides, ', ' )) || '' }} steps: @@ -159,7 +159,7 @@ jobs: - name: Set up curl CA bundle for Davix to work with https run: 'echo SSL_CERT_FILE=/opt/local/share/curl/curl-ca-bundle.crt >> $GITHUB_ENV' - + - name: Pull Request Build shell: bash -leo pipefail {0} if: github.event_name == 'pull_request' @@ -167,7 +167,7 @@ jobs: HOME: /Users/sftnight INCREMENTAL: ${{ !contains(github.event.pull_request.labels.*.name, 'clean build') && !matrix.platform == 'mac15' && !matrix.platform == 'mac26'}} GITHUB_PR_ORIGIN: ${{ github.event.pull_request.head.repo.clone_url }} - run: ".github/workflows/root-ci-config/build_root.py + run: ".github/workflows/root-ci-config/build_root.py --buildtype RelWithDebInfo --incremental $INCREMENTAL --base_ref ${{ github.base_ref }} @@ -181,7 +181,7 @@ jobs: - name: Workflow dispatch shell: bash -leo pipefail {0} if: ${{ github.event_name == 'workflow_dispatch' && !matrix.is_special }} - run: ".github/workflows/root-ci-config/build_root.py + run: ".github/workflows/root-ci-config/build_root.py --buildtype ${{ inputs.buildtype }} --platform ${{ matrix.platform }} --incremental ${{ inputs.incremental }} @@ -193,7 +193,7 @@ jobs: - name: Nightly build shell: bash -leo pipefail {0} if: github.event_name == 'schedule' - run: ".github/workflows/root-ci-config/build_root.py + run: ".github/workflows/root-ci-config/build_root.py --buildtype Release --platform ${{ matrix.platform }} --incremental false @@ -204,7 +204,7 @@ jobs: - name: Update build cache after push to release branch shell: bash -leo pipefail {0} if: github.event_name == 'push' - run: ".github/workflows/root-ci-config/build_root.py + run: ".github/workflows/root-ci-config/build_root.py --buildtype RelWithDebInfo --platform ${{ matrix.platform }} --incremental false @@ -383,6 +383,10 @@ jobs: - image: alma9 overrides: ["CMAKE_BUILD_TYPE=Debug"] - image: alma10 + # Minimal build + - image: alma10 + minimal: true + property: "Minimal build" - image: ubuntu22 overrides: ["imt=Off", "CMAKE_BUILD_TYPE=Debug"] - image: ubuntu2404 @@ -418,7 +422,7 @@ jobs: is_special: true property: "Fedora pydebug" overrides: ["CMAKE_CXX_STANDARD=23"] - # Disable GPU builds until the DNS problem is solved + # Disable GPU builds until the DNS problem is solved # - image: ubuntu2404-cuda # is_special: true # property: gpu @@ -490,6 +494,19 @@ jobs: run: 'printf "%s@%s\\n" "$(whoami)" "$(hostname)"; ls -la ' + - name: Apply option minimal request from matrix for this job + if: ${{ matrix.minimal == true }} + env: + GLOBAL_CONFIG_DIR: '.github/workflows/root-ci-config/buildconfig' + CONFIGFILE_STEM: '.github/workflows/root-ci-config/buildconfig/${{ matrix.image }}' + run: | + echo "Applying minimal request options" + # Add commands to apply minimal request options here + set -x + cp "$GLOBAL_CONFIG_DIR/global-minimal.txt" "$GLOBAL_CONFIG_DIR/global.txt" + if [ -f "${CONFIGFILE_STEM}-minimal.txt" ]; then + cp "${CONFIGFILE_STEM}-minimal.txt" "${CONFIGFILE_STEM}.txt" + fi - name: Apply option overrides from matrix for this job for all builds except non-special nightlies and releases if: ${{ ( github.event_name != 'schedule' || matrix.is_special) && github.event_name != 'workflow_dispatch' && matrix.overrides != NaN }}