Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/root-ci-config/build_root.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
# the target branch in the ROOT repository using base_ref and head_ref:
# - The base_ref is e.g. "master" or "v6-38-00-patches"
# - The head_ref for PRs is formatted as <PR branch>:<Fork branch> e.g. "refs/pull/20742/head:cppyy_fixup"
if not ":" in args.head_ref:

Check failure on line 62 in .github/workflows/root-ci-config/build_root.py

View workflow job for this annotation

GitHub Actions / ruff

ruff (E713)

.github/workflows/root-ci-config/build_root.py:62:16: E713 Test for membership should be `not in` help: Convert to `not in`
build_utils.print_error(f"This has been identified as a PR build. However, the head-ref is {args.head_ref}.")
branch_in_fork = args.head_ref.split(":")[-1]
if branch_in_fork == args.base_ref:
Expand All @@ -85,16 +85,17 @@

if "minimal" in platform_options and platform_options["minimal"] == "ON":
options_dict = platform_options
print(f"Minimal build detected in the platform options. Ignoring global configuration.")

Check failure on line 88 in .github/workflows/root-ci-config/build_root.py

View workflow job for this annotation

GitHub Actions / ruff

ruff (F541)

.github/workflows/root-ci-config/build_root.py:88:15: F541 f-string without any placeholders help: Remove extraneous `f` prefix
else:
options_dict.update(platform_options)
print(f"Build option overrides for {args.platform_config}:")
build_utils.print_options_diff(options_dict, last_options)

if args.overrides is not None:
overrides = ' '.join(args.overrides).split('@')
print("Build option overrides from command line:")
last_options = dict(options_dict)
options_dict.update((arg.split("=", maxsplit=1) for arg in args.overrides))
options_dict.update((arg.split("=", maxsplit=1) for arg in overrides))
build_utils.print_options_diff(options_dict, last_options)

ctest_custom_flags = ""
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
CMAKE_BUILD_TYPE=Debug
CMAKE_CXX_FLAGS_DEBUG="-Og -g"
asan=ON
ccache=ON
builtin_vdt=ON
fail-on-missing=ON
minimal=ON
roottest=ON
testing=ON
LSAN_OPTIONS=verbosity=1:log_threads=1
ROOT_CTEST_CUSTOM_FLAGS="-E \(cppinterop-CppInterOpTest\|roottest-cling-specialobj-runf02$\|roottest-root-collection-DeleteWarning$\|roottest-root-io-evolution-fixarr2$\|roottest-root-meta-rlibmap$\|roottest-root-treeproxy-vectorint-vectorint$\)"
10 changes: 8 additions & 2 deletions .github/workflows/root-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -156,8 +156,8 @@
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 }}
OVERRIDES: ${{ join( matrix.overrides, ' ') }}
OVERRIDES: ${{ join( matrix.overrides, '@') }}
run: |

Check failure on line 160 in .github/workflows/root-ci.yml

View workflow job for this annotation

GitHub Actions / lint-action-files

"github.event.pull_request.head.ref" is potentially untrusted. avoid using it directly in inline scripts. instead, pass it through an environment variable. see https://docs.github.com/en/actions/reference/security/secure-use#good-practices-for-mitigating-script-injection-attacks for more details
[ -d "${VIRTUAL_ENV_DIR}" ] && source ${VIRTUAL_ENV_DIR}/bin/activate
echo "Python is now $(which python3) $(python3 --version)"
src/.github/workflows/root-ci-config/build_root.py \
Expand All @@ -170,7 +170,7 @@
--head_sha ${{ github.event.pull_request.head.sha }} \
--repository ${{ github.server_url }}/${{ github.repository }} \
--platform ${{ matrix.platform }} \
--overrides ${GLOBAL_OVERRIDES} ${OVERRIDES}
--overrides "${GLOBAL_OVERRIDES}" "${OVERRIDES}"

- name: Workflow dispatch
if: ${{ github.event_name == 'workflow_dispatch' && !matrix.is_special }}
Expand Down Expand Up @@ -287,7 +287,7 @@
INCREMENTAL: ${{ !contains(github.event.pull_request.labels.*.name, 'clean build') }}
GITHUB_PR_ORIGIN: ${{ github.event.pull_request.head.repo.clone_url }}
shell: cmd
run: "C:\\setenv.bat ${{ matrix.target_arch }} &&

Check failure on line 290 in .github/workflows/root-ci.yml

View workflow job for this annotation

GitHub Actions / lint-action-files

"github.event.pull_request.head.ref" is potentially untrusted. avoid using it directly in inline scripts. instead, pass it through an environment variable. see https://docs.github.com/en/actions/reference/security/secure-use#good-practices-for-mitigating-script-injection-attacks for more details
python .github/workflows/root-ci-config/build_root.py
--buildtype ${{ matrix.config }}
--platform windows10
Expand Down Expand Up @@ -415,6 +415,12 @@
is_special: true
property: "clang Ninja builtins auto-registration off"
overrides: ["CMAKE_CXX_STANDARD=20"]
# Asan build
- image: alma10
platform_config: alma10-minimal
is_special: true
property: "asan"
overrides: ["ROOT_CTEST_CUSTOM_FLAGS='-E \\(^tutorial-\\|cppinterop-CppInterOpTest\\|roottest-cling-specialobj-runf02$\\|roottest-root-collection-DeleteWarning$\\|roottest-root-io-evolution-fixarr2$\\|roottest-root-meta-rlibmap$\\|roottest-root-treeproxy-vectorint-vectorint$\\)'"]
# Fedora Rawhide with Python freethreading+debug build
- image: rawhide
python_venv: "/py-venv-3.15td/ROOT-CI"
Expand Down Expand Up @@ -448,7 +454,7 @@
- self-hosted
- linux
- ${{ matrix.architecture == null && 'x64' || matrix.architecture }}
- ${{ matrix.extra-runs-on == null && 'cpu' || matrix.extra-runs-on }}

Check failure on line 457 in .github/workflows/root-ci.yml

View workflow job for this annotation

GitHub Actions / lint-action-files

property "extra-runs-on" is not defined in object type {architecture: string; image: string; is_special: bool; overrides: array<string>; platform_config: string; property: string; python_venv: string}

Check failure on line 457 in .github/workflows/root-ci.yml

View workflow job for this annotation

GitHub Actions / lint-action-files

property "extra-runs-on" is not defined in object type {architecture: string; image: string; is_special: bool; overrides: array<string>; platform_config: string; property: string; python_venv: string}

name: |
${{ matrix.image }} ${{ matrix.property }}
Expand Down Expand Up @@ -515,7 +521,7 @@
INCREMENTAL: ${{ !contains(github.event.pull_request.labels.*.name, 'clean build') }}
GITHUB_PR_ORIGIN: ${{ github.event.pull_request.head.repo.clone_url }}
OVERRIDES: ${{ join( matrix.overrides, ' ') }}
run: ".github/workflows/root-ci-config/build_root.py

Check failure on line 524 in .github/workflows/root-ci.yml

View workflow job for this annotation

GitHub Actions / lint-action-files

"github.event.pull_request.head.ref" is potentially untrusted. avoid using it directly in inline scripts. instead, pass it through an environment variable. see https://docs.github.com/en/actions/reference/security/secure-use#good-practices-for-mitigating-script-injection-attacks for more details
--buildtype RelWithDebInfo
--platform ${{ matrix.image }}
--platform_config ${{ matrix.platform_config }}
Expand Down
2 changes: 1 addition & 1 deletion cmake/modules/RootBuildOptions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ option(minimal "Enable only required options by default" OFF)
option(rootbench "Build rootbench if rootbench exists in root or if it is a sibling directory (implies testing=ON)" OFF)
option(roottest "Build roottest (implies testing=ON)" OFF)
option(testing "Enable testing with CTest" OFF)
option(asan "Build ROOT with address sanitizer instrumentation" OFF)
option(asan "Build ROOT with address sanitizer instrumentation (only GCC is currently supported)" OFF)
Comment thread
silverweed marked this conversation as resolved.

set(gcctoolchain "" CACHE PATH "Set path to GCC toolchain used to build llvm/clang")

Expand Down
3 changes: 2 additions & 1 deletion core/sanitizer/SanitizerSetup.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ const char* __asan_default_options() {
":detect_container_overflow=1"
":alloc_dealloc_mismatch=0"
DETECT_LEAKS
":verify_asan_link_order=0";
":verify_asan_link_order=0"
":halt_on_error=0";
}

/// Default options when leak sanitizer starts up in ROOT executables.
Expand Down
Loading