Skip to content

Commit

Permalink
Splitting docs push
Browse files Browse the repository at this point in the history
  • Loading branch information
hkaiser committed May 11, 2024
1 parent 4d51e9d commit 1bdc214
Showing 1 changed file with 81 additions and 52 deletions.
133 changes: 81 additions & 52 deletions cmake/HPX_UpdateGitDocs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,61 @@ if(NOT GIT_FOUND)
)
endif()

macro(add_docs what)
# add all newly generated files
execute_process(
COMMAND "${GIT_EXECUTABLE}" add ${what}
WORKING_DIRECTORY "${HPX_BINARY_DIR}/docs/gh-pages"
RESULT_VARIABLE git_add_result
ERROR_VARIABLE git_add_result_message COMMAND_ECHO STDERR
)
if(NOT "${git_add_result}" EQUAL "0")
message(
FATAL_ERROR
"Adding files to the GitHub pages branch failed: ${git_add_result_message}."
)
endif()
endmacro()

macro(commit_docs message)
# check if there are changes to commit
execute_process(
COMMAND "${GIT_EXECUTABLE}" diff-index --quiet HEAD
WORKING_DIRECTORY "${HPX_BINARY_DIR}/docs/gh-pages"
RESULT_VARIABLE git_diff_index_result COMMAND_ECHO STDERR
)
if(NOT "${git_diff_index_result}" EQUAL "0")
# commit changes
execute_process(
COMMAND "${GIT_EXECUTABLE}" commit -am "Updating Sphinx docs (" ${message}
")"
WORKING_DIRECTORY "${HPX_BINARY_DIR}/docs/gh-pages"
RESULT_VARIABLE git_commit_result
ERROR_VARIABLE git_pull_result_message COMMAND_ECHO STDERR
)
if(NOT "${git_commit_result}" EQUAL "0")
message(
FATAL_ERROR
"Committing to the GitHub pages branch failed: ${git_pull_result_message}."
)
endif()

# push everything up to github
execute_process(
COMMAND "${GIT_EXECUTABLE}" push --force
WORKING_DIRECTORY "${HPX_BINARY_DIR}/docs/gh-pages"
RESULT_VARIABLE git_push_result
ERROR_VARIABLE git_push_result_message COMMAND_ECHO STDERR
)
if(NOT "${git_push_result}" EQUAL "0")
message(
FATAL_ERROR
"Pushing to the GitHub pages branch failed: ${git_push_result_message}."
)
endif()
endif()
endmacro()

if(NOT GIT_REPOSITORY)
set(GIT_REPOSITORY git@github.com:STEllAR-GROUP/hpx-docs.git --branch master)
endif()
Expand All @@ -34,7 +89,6 @@ if(EXISTS "${HPX_BINARY_DIR}/docs/gh-pages")
)
endif()
else()
message("${GIT_EXECUTABLE}")
execute_process(
COMMAND "${GIT_EXECUTABLE}" clone ${GIT_REPOSITORY} gh-pages
RESULT_VARIABLE git_clone_result
Expand Down Expand Up @@ -71,24 +125,33 @@ if(HPX_WITH_GIT_BRANCH)
DESTINATION "${DOCS_BRANCH_DEST}"
PATTERN "*.buildinfo" EXCLUDE
)
add_docs("branches/${HPX_WITH_GIT_BRANCH}/*")
commit_docs("branch (html)")
endif()
if("singlehtml" IN_LIST HPX_WITH_DOCUMENTATION_OUTPUT_FORMATS)
file(
COPY "${DOCS_SOURCE}/singlehtml"
DESTINATION "${DOCS_BRANCH_DEST}"
PATTERN "*.buildinfo" EXCLUDE
)
add_docs("branches/${HPX_WITH_GIT_BRANCH}/*")
commit_docs("branch (singlehtml)")
endif()
if("latexpdf" IN_LIST HPX_WITH_DOCUMENTATION_OUTPUT_FORMATS)
if(EXISTS "${DOCS_SOURCE}/latexpdf/latex/HPX.pdf")
file(COPY "${DOCS_SOURCE}/latexpdf/latex/HPX.pdf"
DESTINATION "${DOCS_BRANCH_DEST}/pdf/"
)
add_docs("branches/${HPX_WITH_GIT_BRANCH}/*")
commit_docs("branch (latexpdf)")
endif()
endif()

# special handling of dependency report files
if(EXISTS "${DOCS_SOURCE}/report")
file(COPY "${DOCS_SOURCE}/report" DESTINATION "${DOCS_BRANCH_DEST}")
add_docs("branches/${HPX_WITH_GIT_BRANCH}/*")
commit_docs("branch (depreport)")
endif()
endif()

Expand All @@ -103,32 +166,40 @@ if(HPX_WITH_GIT_TAG)
DESTINATION "${DOCS_TAG_DEST}"
PATTERN "*.buildinfo" EXCLUDE
)
add_docs("tags/${HPX_WITH_GIT_TAG}/*")
commit_docs("tag (html)")
endif()
if("singlehtml" IN_LIST HPX_WITH_DOCUMENTATION_OUTPUT_FORMATS)
file(
COPY "${DOCS_SOURCE}/singlehtml"
DESTINATION "${DOCS_TAG_DEST}"
PATTERN "*.buildinfo" EXCLUDE
)
add_docs("tags/${HPX_WITH_GIT_TAG}/*")
commit_docs("tag (singlehtml)")
endif()
if("latexpdf" IN_LIST HPX_WITH_DOCUMENTATION_OUTPUT_FORMATS)
file(
COPY "${DOCS_SOURCE}/latexpdf/latex/HPX.pdf"
DESTINATION "${DOCS_TAG_DEST}/pdf/"
PATTERN "*.buildinfo" EXCLUDE
)
add_docs("tags/${HPX_WITH_GIT_TAG}/*")
commit_docs("tag (latexpdf)")
endif()

# special handling of dependency report files
if(EXISTS "${DOCS_SOURCE}/report")
file(COPY "${DOCS_SOURCE}/report" DESTINATION "${DOCS_TAG_DEST}")
add_docs("tags/${HPX_WITH_GIT_TAG}/*")
commit_docs("tag (depreport)")
endif()

# If a tag name has been set and it is a suitable version number, we also copy
# files to the "latest" directory. The regex only matches full version numbers
# with three numerical components (X.Y.Z). It does not match release
# candidates or other non-version tag names.
if("${HPX_WITH_GIT_TAG}" MATCHES "v[0-9]+\\.[0-9]+\\.[0-9]+$")
if("${HPX_WITH_GIT_TAG}" MATCHES "^v[0-9]+\\.[0-9]+\\.[0-9]+$")
message("Updating latest directory")
set(DOCS_LATEST_DEST "${HPX_BINARY_DIR}/docs/gh-pages/latest")
file(REMOVE_RECURSE "${DOCS_LATEST_DEST}")
Expand All @@ -138,75 +209,33 @@ if(HPX_WITH_GIT_TAG)
DESTINATION "${DOCS_LATEST_DEST}"
PATTERN "*.buildinfo" EXCLUDE
)
add_docs("latest/*")
commit_docs("latest (html)")
endif()
if("singlehtml" IN_LIST HPX_WITH_DOCUMENTATION_OUTPUT_FORMATS)
file(
COPY "${DOCS_SOURCE}/singlehtml"
DESTINATION "${DOCS_LATEST_DEST}"
PATTERN "*.buildinfo" EXCLUDE
)
add_docs("latest/*")
commit_docs("latest (singlehtml)")
endif()
if("latexpdf" IN_LIST HPX_WITH_DOCUMENTATION_OUTPUT_FORMATS)
file(
COPY "${DOCS_SOURCE}/latexpdf/latex/HPX.pdf"
DESTINATION "${DOCS_LATEST_DEST}/pdf/"
PATTERN "*.buildinfo" EXCLUDE
)
add_docs("latest/*")
commit_docs("latest (latexpdf)")
endif()

# special handling of dependency report files
if(EXISTS "${DOCS_SOURCE}/report")
file(COPY "${DOCS_SOURCE}/report" DESTINATION "${DOCS_LATEST_DEST}")
add_docs("latest/*")
commit_docs("latest (depreport)")
endif()
endif()
endif()

# add all newly generated files
execute_process(
COMMAND "${GIT_EXECUTABLE}" add *
WORKING_DIRECTORY "${HPX_BINARY_DIR}/docs/gh-pages"
RESULT_VARIABLE git_add_result
ERROR_VARIABLE git_pull_result_message COMMAND_ECHO STDERR
)
if(NOT "${git_add_result}" EQUAL "0")
message(
FATAL_ERROR
"Adding files to the GitHub pages branch failed: ${git_pull_result_message}."
)
endif()

# check if there are changes to commit
execute_process(
COMMAND "${GIT_EXECUTABLE}" diff-index --quiet HEAD
WORKING_DIRECTORY "${HPX_BINARY_DIR}/docs/gh-pages"
RESULT_VARIABLE git_diff_index_result COMMAND_ECHO STDERR
)
if(NOT "${git_diff_index_result}" EQUAL "0")
# commit changes
execute_process(
COMMAND "${GIT_EXECUTABLE}" commit -am "Updating Sphinx docs"
WORKING_DIRECTORY "${HPX_BINARY_DIR}/docs/gh-pages"
RESULT_VARIABLE git_commit_result
ERROR_VARIABLE git_pull_result_message COMMAND_ECHO STDERR
)
if(NOT "${git_commit_result}" EQUAL "0")
message(
FATAL_ERROR
"Committing to the GitHub pages branch failed: ${git_pull_result_message}."
)
endif()

# push everything up to github
execute_process(
COMMAND "${GIT_EXECUTABLE}" push --force
WORKING_DIRECTORY "${HPX_BINARY_DIR}/docs/gh-pages"
RESULT_VARIABLE git_push_result
ERROR_VARIABLE git_pull_result_message COMMAND_ECHO STDERR
)
if(NOT "${git_push_result}" EQUAL "0")
message(
FATAL_ERROR
"Pushing to the GitHub pages branch failed: ${git_pull_result_message}."
)
endif()
endif()

0 comments on commit 1bdc214

Please sign in to comment.