Skip to content

[skip-ci][WIP][CI][Doc] Generate Doxygen docs with CMake + GitHub Actions #15314

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 54 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
beeaeee
[docu] Add new ROOT build option: docu
ferdymercury Apr 5, 2024
9f7a073
[cmake] If not calling thisroot.sh, prevent not finding libs
ferdymercury Apr 16, 2024
7275ce4
fix bug: multiple COMMAND must share WORKING_DIRECTORY
ferdymercury Apr 16, 2024
4cbdad4
split targets for better structure
ferdymercury Apr 16, 2024
c78d067
exit 0 so that there is no error if DOCU_INPUT contains no notebooks
ferdymercury Apr 16, 2024
38384df
Updates from makeinput
ferdymercury Apr 16, 2024
ba4c4e1
Fix cat 'input file is output file' error
jolly-chen Apr 17, 2024
0c7b082
Fix converttonotebook.py not found
jolly-chen Apr 17, 2024
5d34598
try to fix library not found path when running macro
ferdymercury Apr 17, 2024
d940426
fix cascaded path not found
ferdymercury Apr 17, 2024
a830f64
fix python variable name
ferdymercury Apr 17, 2024
e372bbf
give more sensful error message
ferdymercury Apr 17, 2024
c819ce2
add pyzdoc
ferdymercury Apr 17, 2024
57e4b00
minor fixes
ferdymercury Apr 17, 2024
1046422
Fix preparation target dependencies
jolly-chen Apr 18, 2024
d172103
cleanup CMakeLists.txt
ferdymercury Apr 18, 2024
fb582d9
Update CMakeLists.txt
ferdymercury Apr 22, 2024
11b3e0b
properly get git-version when builtin_docu=ON
ferdymercury Apr 24, 2024
3441999
Fix empty ROOT_CXX_COMPILER
jolly-chen Apr 24, 2024
68d3951
fix cxx compiler
ferdymercury Apr 24, 2024
795178f
fix missing ROOTcmd when builtin
ferdymercury Apr 24, 2024
fb51735
allow default doxygen, no need to specify
ferdymercury Apr 24, 2024
8ff5dcf
default docu output location is now home/rootdoc
ferdymercury Apr 24, 2024
a2813ef
correct way of getting HOME in cmake
ferdymercury Apr 24, 2024
f57ef1d
modernize headers, prevent int comparison warning
ferdymercury Apr 26, 2024
272fd46
do not unset doxygen cache and use cmake cxx standard variable
ferdymercury May 1, 2024
fb2f0b1
allow caching options
ferdymercury May 1, 2024
7f417fe
fix standard
ferdymercury May 1, 2024
c605c66
fix html image path
ferdymercury May 1, 2024
a0192ad
should remove worklist from previous run!!
ferdymercury May 1, 2024
0b25ac1
fix paths
ferdymercury May 1, 2024
f77e5cb
fix paths
ferdymercury May 1, 2024
6626430
fix rm moment
ferdymercury May 1, 2024
31dc377
copy missing script
ferdymercury May 1, 2024
b17e42f
additional clean
ferdymercury May 2, 2024
3a58875
avoid pollute source tree
ferdymercury May 2, 2024
9421b60
fix typo
ferdymercury May 2, 2024
4b92fbb
fix notebook conversion
ferdymercury May 2, 2024
993f369
fix pythonpath
ferdymercury May 3, 2024
36988e5
fix infinite loop - tee command
ferdymercury May 5, 2024
eed2f37
fix typo
ferdymercury May 7, 2024
d826990
Update .gitignore
ferdymercury May 8, 2024
b3e97c2
rm from previous run if incremental build
ferdymercury May 9, 2024
a9ba8e7
fix python3 path
ferdymercury May 9, 2024
ef09aee
[ci] Add documentation option to build_root.py
jolly-chen Apr 24, 2024
332b176
[ci] Add doxygen generation workflow
jolly-chen Apr 24, 2024
867cfcb
Create archive before uploading artifact
jolly-chen Apr 24, 2024
6567c4d
try run on mac runner
jolly-chen Apr 26, 2024
e34e578
try with dmg doxygen
ferdymercury Apr 27, 2024
dd65efb
switch to mac12 that is x64
ferdymercury Apr 29, 2024
6c5230e
add timer
ferdymercury Apr 30, 2024
89c3a16
build all docu
ferdymercury May 1, 2024
0029b3a
temporarily disable tutorials
ferdymercury May 6, 2024
2ce2bc8
do not depend on hsimple but rather on onepcm
ferdymercury Jun 25, 2024
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
26 changes: 25 additions & 1 deletion .github/workflows/root-ci-config/build_root.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,11 @@ def main():

options = build_utils.cmake_options_from_dict(options_dict)

if args.documentation:
options = "-Ddocu=ON " + options
if args.docu_input != "":
options = f"-DDOCU_INPUT=\"{args.docu_input}\" " + options

if WINDOWS:
options = "-Thost=x64 " + options

Expand All @@ -86,8 +91,17 @@ def main():
# The sha1 of the build option string is used to find existing artifacts
# with matching build options on s3 storage.
option_hash = sha1(options.encode('utf-8')).hexdigest()

# TEMPORARY: force incremental build for faster debugging
option_hash = "a2bf4e78066e394ef22a80d94500b4a252512440"
# tmp_dict = options_dict.copy()
# if "docu" in tmp_dict: del tmp_dict["docu"]
# if "DOXYGEN_EXECUTABLE" in tmp_dict: del tmp_dict["DOXYGEN_EXECUTABLE"]
# tmp_options = build_utils.cmake_options_from_dict(tmp_dict)

obj_prefix = f'{args.platform}/{args.base_ref}/{args.buildtype}/{option_hash}'


# Make testing of CI in forks not impact artifacts
if 'root-project/root' not in args.repository:
obj_prefix = f"ci-testing/{args.repository.split('/')[-2]}/" + obj_prefix
Expand Down Expand Up @@ -133,6 +147,13 @@ def main():
if not WINDOWS:
show_node_state()

# TEMPORARY FOR DEBUGGING: remove after removing forced incremental build
if args.documentation:
result = subprocess_with_log(f"""
rm -rf {os.path.join(WORKDIR, "build", "CMakeCache.txt")}
""")
cmake_configure(options, args.buildtype)

build(options, args.buildtype)

# Build artifacts should only be uploaded for full builds, and only for
Expand Down Expand Up @@ -192,6 +213,9 @@ def parse_args():
parser.add_argument("--head_ref", default=None, help="Ref to feature branch; it may contain a :<dst> part")
parser.add_argument("--head_sha", default=None, help="Sha of commit that triggered the event")
parser.add_argument("--binaries", default="false", help="Whether to create binary artifacts")
parser.add_argument("--documentation", default="false", help="Whether to generate Doxygen documentation")
parser.add_argument("--docu_input", default="",
help="Semi-colon separated list of folders for documentation generation, if enabled. All default folders are built if empty. ")
parser.add_argument("--architecture", default=None, help="Windows only, target arch")
parser.add_argument("--repository", default="https://github.com/root-project/root.git",
help="url to repository")
Expand All @@ -202,6 +226,7 @@ def parse_args():
args.incremental = args.incremental.lower() in ('yes', 'true', '1', 'on')
args.coverage = args.coverage.lower() in ('yes', 'true', '1', 'on')
args.binaries = args.binaries.lower() in ('yes', 'true', '1', 'on')
args.documentation = args.documentation.lower() in ('yes', 'true', '1', 'on')

if not args.base_ref:
die(os.EX_USAGE, "base_ref not specified")
Expand Down Expand Up @@ -554,6 +579,5 @@ def create_coverage_xml() -> None:
if result != 0:
die(result, "Failed to create test coverage")


if __name__ == "__main__":
main()
Loading