-
-
Notifications
You must be signed in to change notification settings - Fork 430
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
81 additions
and
52 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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 [email protected]:STEllAR-GROUP/hpx-docs.git --branch master) | ||
endif() | ||
|
@@ -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 | ||
|
@@ -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() | ||
|
||
|
@@ -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}") | ||
|
@@ -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() |