Skip to content

Commit c538234

Browse files
authored
Merge branch 'celeritas-project:develop' into ferrari
2 parents bc1272d + 5ce7701 commit c538234

File tree

767 files changed

+28515
-9610
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

767 files changed

+28515
-9610
lines changed

.git-blame-ignore-revs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# NOTE: this file sorted by category, then increasing date
12
# Reorganize repository
23
c93d9582552e2d7ad4e18d9d74b7e9e62de53c0e
34
f219e55eeab7ed4a9ea1a91a94f07951d0010f36
@@ -17,6 +18,9 @@ cfc407b09185786e4b4939d3b9b720215afcc7f2
1718
0b805058892830cbad5aee2dd52fcc9c1bc8a09c
1819
e69902f7dc8ffe6e23b35d5694084566d4621ddc
1920
dce7d924d26f8a22034b7dd8e99f1633f6b9c49f
21+
516fab57da4340613725caf1670c480e2271a669
22+
# ruff format
23+
3503ede7f9c61db2a811e501cbfc42b25bd6e830
2024
# consolidate .hh, i.hh
2125
128b0eff32a159005019a8f18619e3630181d9d0
2226
d90f9cb55c0df92e36ccfd0646f9ffd1a51bbd14

.github/CODEOWNERS

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#-----------------------------------------------------------------------------#
2+
# CELERITAS PROJECT CODEOWNERS
3+
# See discussion in /doc/development/administration.rst .
4+
# Note that later lines take precedence over earlier ones.
5+
#-----------------------------------------------------------------------------#
6+
7+
# Default all changes to ping the code lead if not overridden below
8+
* @celeritas-project/code-lead
9+
10+
#-------------------------------------#
11+
# Topics
12+
#-------------------------------------#
13+
14+
# Administration
15+
/.github/CODEOWNERS @celeritas-project/code-lead @celeritas-project/core-advisor
16+
/scripts/release/users.json @celeritas-project/code-lead
17+
/doc/development/administration.rst @celeritas-project/code-lead @celeritas-project/core-advisor
18+
19+
# CI Infrastructure
20+
/.github/ @sethrj @pcanal
21+
/cmake/ @sethrj @pcanal
22+
/scripts/ci/ @sethrj @pcanal
23+
/scripts/docker/interactive @esseivaju
24+
/scripts/**/perlmutter.* @esseivaju
25+
26+
# Core capabilities
27+
/src/corecel/ @sethrj
28+
/src/corecel/random/ @davidsgr @amandalund
29+
/src/corecel/sys/ @esseivaju
30+
31+
# Physics
32+
/src/celeritas/em/ @amandalund @stognini @whokion
33+
/src/celeritas/field/ @sethrj @whokion
34+
/src/celeritas/neutron/ @whokion
35+
/src/celeritas/optical/ @amandalund @hhollenb @Rashika-Gupta @whokion
36+
/src/celeritas/phys/ @sethrj @amandalund
37+
/src/celeritas/track/ @amandalund @esseivaju @LSchwiebert
38+
39+
# Geometry
40+
/src/orange/ @elliottbiondo @esseivaju @sethrj
41+
/src/geocel/vg/ @mrguilima @sethrj
42+
43+
# Integration
44+
/src/celeritas/g4/ @drbenmorgan @sethrj @stognini @whokion
45+
/src/celeritas/ext/ @drbenmorgan @sethrj @stognini @whokion
46+
/src/accel/ @drbenmorgan @esseivaju @rahmans1 @Rashika-Gupta @sethrj @stognini @whokion
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
#-------------------------------- -*- yaml -*- ---------------------------------#
2+
# Copyright Celeritas contributors: see top-level COPYRIGHT file for details
3+
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
4+
#-----------------------------------------------------------------------------#
5+
# Generate and upload code coverage reports.
6+
#
7+
# This *must* be run from inside an existing build after compiling with
8+
# appropriate coverage flags and running tests.
9+
#-----------------------------------------------------------------------------#
10+
11+
name: 'Generate Coverage Report'
12+
description: 'Generates coverage report using gcovr and uploads to Codecov'
13+
inputs:
14+
codecov_token:
15+
description: 'Codecov token'
16+
required: true
17+
working_directory:
18+
description: 'Working directory for coverage generation'
19+
required: false
20+
default: '.'
21+
codecov_name:
22+
description: 'Name for the codecov upload'
23+
required: false
24+
default: 'codecov-umbrella'
25+
fail_ci_if_error:
26+
description: 'Fail CI if codecov upload fails'
27+
required: false
28+
default: true
29+
gcov_executable:
30+
description: 'Path to gcov executable (if using llvm, set to llvm-gcov)'
31+
required: false
32+
default: 'gcov'
33+
gcovr_config:
34+
description: 'Path to gcovr config file'
35+
required: false
36+
default: 'scripts/ci/gcovr.cfg'
37+
38+
39+
runs:
40+
using: 'composite'
41+
steps:
42+
- name: Install dependencies
43+
shell: bash
44+
run: |
45+
if command -v dnf >/dev/null 2>&1; then
46+
dnf -y install lcov
47+
else
48+
sudo apt-get -q -y update
49+
sudo apt-get -q -y install lcov
50+
fi
51+
pip install gcovr
52+
- name: Generate coverage report
53+
shell: sh
54+
working-directory: ${{inputs.working_directory}}
55+
run: |
56+
gcovr \
57+
--config=${{inputs.gcovr_config}} \
58+
--gcov-executable=${{inputs.gcov_executable}} \
59+
-j $(($(nproc) + 1)) \
60+
--output=cobertura-cov.xml --cobertura-pretty \
61+
--merge-mode-functions=merge-use-line-min
62+
63+
- name: Upload coverage to Codecov
64+
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
65+
with:
66+
token: ${{inputs.codecov_token }}
67+
fail_ci_if_error: ${{inputs.fail_ci_if_error}}
68+
name: ${{inputs.codecov_name}}
69+
files: ${{inputs.working_directory}}/cobertura-cov.xml
70+
verbose: true
71+
gcov_executable: ${{inputs.gcov_executable}}

.github/codecov.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Codecov configuration
2+
# See https://docs.codecov.com/docs/codecov-yaml
3+
# See https://docs.codecov.com/docs/codecovyml-reference
4+
#
5+
# This file can be validated with:
6+
# curl -X POST --data-binary @.github/codecov.yml https://codecov.io/validate
7+
8+
coverage:
9+
precision: 2
10+
round: down
11+
# Default was 70...100
12+
range: "60...100"
13+
14+
status:
15+
project:
16+
default:
17+
# 'auto' will use the coverage from the base commit (pull request base or
18+
# parent commit) coverage to compare against. This is the default.
19+
target: auto
20+
# The default threshold is 1%, which means any drop in coverage will cause
21+
threshold: 5%
22+
base: auto
23+
if_not_found: success
24+
if_ci_failed: error
25+
patch:
26+
default:
27+
target: auto
28+
# For now only failing if the coverage drops a lot.
29+
threshold: 25%
30+
base: auto
31+
if_not_found: success
32+
if_ci_failed: error
33+
34+
comment:
35+
layout: "reach,diff,flags,tree"
36+
behavior: default
37+
require_changes: false
38+
39+
ignore:
40+
- "test"
41+
- "app"
42+
- "doc/**/*"
43+
- "docs/**/*"
44+
- "*.md"
45+
- "scripts/**/*"
46+
- ".github/**/*"

.github/workflows/build-docker.yml

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
1+
#-------------------------------- -*- yaml -*- ---------------------------------#
2+
# Copyright Celeritas contributors: see top-level COPYRIGHT file for details
3+
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
4+
#-----------------------------------------------------------------------------#
5+
# Build using CUDA/ROCm docker images
6+
#-----------------------------------------------------------------------------#
7+
18
name: build-docker
29
on:
310
workflow_dispatch:
411
workflow_call:
12+
secrets:
13+
CODECOV_TOKEN:
14+
required: true
515

616
concurrency:
717
group: build-${{github.ref}}-${{github.event.pull_request.number || github.run_number}}-${{github.workflow}}
@@ -34,6 +44,12 @@ jobs:
3444
- geometry: "vecgeom"
3545
buildtype: "reldeb"
3646
image: "rocky-cuda"
47+
- buildtype: "reldeb"
48+
geometry: "vecgeom"
49+
special: "codecov"
50+
geant: "11.3"
51+
image: "rocky-cuda"
52+
3753
env:
3854
CELER_TEST_STRICT: 0 # TODO: enable with Geant4 v11.3
3955
CELER_DISABLE_DEVICE: 1 # REQUIRED for GHA runners
@@ -48,7 +64,7 @@ jobs:
4864
image: >-
4965
docker.io/celeritas/${{
5066
matrix.image == 'rocky-cuda' && 'ci-rocky-cuda12:2024-12-29'
51-
|| matrix.image == 'ubuntu-rocm' && 'ci-ubuntu-rocm6:2025-01-02'
67+
|| matrix.image == 'ubuntu-rocm' && 'ci-ubuntu-rocm7:2025-11-04'
5268
}}
5369
steps:
5470
- name: Set up environment
@@ -70,7 +86,7 @@ jobs:
7086
run: |
7187
git config --global --add safe.directory ${PWD}
7288
ln -fs scripts/cmake-presets/ci-${{matrix.image}}.json CMakeUserPresets.json
73-
cmake --preset=${CMAKE_PRESET}
89+
cmake --preset=${CMAKE_PRESET} --log-level=VERBOSE
7490
7591
### BUILD ###
7692

@@ -98,6 +114,17 @@ jobs:
98114
path: "test-output/**/*.xml"
99115
if-no-files-found: error
100116
retention-days: 1
117+
- name: Generate and upload coverage report
118+
uses: ./.github/actions/generate-coverage
119+
if: >-
120+
${{
121+
matrix.special == 'codecov'
122+
&& !cancelled()
123+
&& steps.test.outcome == 'success'
124+
}}
125+
with:
126+
codecov_token: ${{secrets.CODECOV_TOKEN}}
127+
fail_ci_if_error: true
101128

102129
### INSTALL ###
103130

.github/workflows/build-fast.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1+
#-------------------------------- -*- yaml -*- ---------------------------------#
2+
# Copyright Celeritas contributors: see top-level COPYRIGHT file for details
3+
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
4+
#-----------------------------------------------------------------------------#
15
# Build directly on the GitHub runner with caching
6+
#-----------------------------------------------------------------------------#
7+
28
name: build-fast
39
on:
410
workflow_dispatch:

0 commit comments

Comments
 (0)