Skip to content
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

Now checks for branch before pushing #80

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
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
73 changes: 43 additions & 30 deletions doxy_gen_and_deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ else
export BUILD_DIR=${TRAVIS_BUILD_DIR}
export AUTH=${GH_REPO_TOKEN}
export REPO_SLUG=${TRAVIS_REPO_SLUG}
export GITHUB_REF=${TRAVIS_BRANCH}
if [ "${TRAVIS_PULL_REQUEST}" != "false" ]; then
export IS_PULL=1
fi
Expand Down Expand Up @@ -141,46 +142,58 @@ if [ ${IS_PULL} == 1 ]; then
echo "This is a Pull Request, we're done!"
exit 0
else
echo "This is a Commit, Uploading documentation..."
echo "This is a Commit, we may want to upload documentation..."
fi

cd code_docs/${REPO_NAME}





################################################################################
##### Upload the documentation to the gh-pages branch of the repository. #####
# Only upload if Doxygen successfully created the documentation.
# Check this by verifying that the html directory and the file html/index.html
# both exist. This is a good indication that Doxygen did it's work.
if [ -d "html" ] && [ -f "html/index.html" ]; then

echo 'Uploading documentation to the gh-pages branch...'
# Add everything in this directory (the Doxygen code documentation) to the
# gh-pages branch.
# GitHub is smart enough to know which files have changed and which files have
# stayed the same and will only update the changed files.
echo 'Adding all files'
git add --all

if [ -n "$(git status --porcelain)" ]; then
echo "Changes to commit"
CURRENT_BRANCH_NAME="${GITHUB_REF##*/}"
readonly DEFAULT_BRANCH_NAME="$(curl "https://api.github.com/repos/${REPO_SLUG}" | jq --raw-output .default_branch)"

if [[ "$CURRENT_BRANCH_NAME" = "$DEFAULT_BRANCH_NAME" ]]; then
if [ -d "html" ] && [ -f "html/index.html" ]; then

echo 'Uploading documentation to the gh-pages branch...'
# Add everything in this directory (the Doxygen code documentation) to the
# gh-pages branch.
# GitHub is smart enough to know which files have changed and which files have
# stayed the same and will only update the changed files.
echo 'Adding all files'
git add --all

if [ -n "$(git status --porcelain)" ]; then
echo "Changes to commit"
else
echo "No changes to commit"
exit 0
fi

# Commit the added files with a title and description containing the Travis CI
# build number and the GitHub commit reference that issued this build.
echo 'Git committing'
git commit -m "Deploy code docs to GitHub Pages Travis build: ${TRAVIS_BUILD_NUMBER}" -m "Commit: ${TRAVIS_COMMIT}"

# Force push to the remote gh-pages branch.
# The ouput is redirected to /dev/null to hide any sensitive credential data
# that might otherwise be exposed.
echo 'Git pushing'
git push --force "https://${AUTH}@github.com/${REPO_SLUG}.git" > /dev/null 2>&1
else
echo "No changes to commit"
exit 0
echo '' >&2
echo 'Warning: No documentation (html) files have been found!' >&2
echo 'Warning: Not going to push the documentation to GitHub!' >&2
exit 1
fi

# Commit the added files with a title and description containing the Travis CI
# build number and the GitHub commit reference that issued this build.
echo 'Git committing'
git commit -m "Deploy code docs to GitHub Pages Travis build: ${TRAVIS_BUILD_NUMBER}" -m "Commit: ${TRAVIS_COMMIT}"

# Force push to the remote gh-pages branch.
# The ouput is redirected to /dev/null to hide any sensitive credential data
# that might otherwise be exposed.
echo 'Git pushing'
git push --force "https://${AUTH}@github.com/${REPO_SLUG}.git" > /dev/null 2>&1
else
echo '' >&2
echo 'Warning: No documentation (html) files have been found!' >&2
echo 'Warning: Not going to push the documentation to GitHub!' >&2
exit 1
echo "Branch is not master or main, we're done!"
exit 0
fi