#!/bin/bash ## # Makes a shallow clone for gh-pages branch, copies the new docs, adds, commits and pushes 'em. # # Requires the environment variable GH_TOKEN to be set to a valid GitHub-api-token. # # Usage: # ./deploy-gh-pages.sh <project-version> # # project-version The version folder to use in gh-pages ## set -o errexit -o nounset PROJECT_VERSION=$1 GH_URL="https://${GH_TOKEN}@github.com/codecentric/spring-boot-admin.git" TEMPDIR="$(mktemp -d /tmp/gh-pages.XXX)" echo "Cloning gh-pages branch..." git clone --branch gh-pages --single-branch --depth 1 --config user.name="Johannes Edmeier" --config user.email="johannes.edmeier@gmail.com" "$GH_URL" "$TEMPDIR" if [[ -d "$TEMPDIR"/"${PROJECT_VERSION}-SNAPSHOT" ]]; then echo "Removing ${PROJECT_VERSION}-SNAPSHOT..." rm -rf "$TEMPDIR"/"${PROJECT_VERSION}-SNAPSHOT" fi echo "Copying new docs..." mkdir -p "$TEMPDIR"/"${PROJECT_VERSION}" cp -r target/generated-docs/* "$TEMPDIR"/"${PROJECT_VERSION}"/ pushd "$TEMPDIR" >/dev/null git add --all . if git diff-index --quiet HEAD; then echo "No changes detected." else echo "Commit changes..." git commit --message "Docs for ${PROJECT_VERSION}" echo "Pushing gh-pages..." git push origin gh-pages fi popd >/dev/null rm -rf "$TEMPDIR" exit 0