| #!/bin/bash | |
| set -ex | |
| echo "Removing the current docs for master" | |
| rm -rf out/master/ || exit 0 | |
| echo "Making the docs for master" | |
| mkdir out/master/ | |
| cp util/gh-pages/index.html out/master | |
| cp util/gh-pages/theme.js out/master | |
| cp util/gh-pages/script.js out/master | |
| cp util/gh-pages/style.css out/master | |
| if [[ -n $TAG_NAME ]]; then | |
| echo "Save the doc for the current tag ($TAG_NAME) and point stable/ to it" | |
| cp -Tr out/master "out/$TAG_NAME" | |
| rm -f out/stable | |
| ln -s "$TAG_NAME" out/stable | |
| fi | |
| if [[ $BETA = "true" ]]; then | |
| echo "Update documentation for the beta release" | |
| cp -r out/master/* out/beta | |
| fi | |
| # Generate version index that is shown as root index page | |
| python3 ./util/versions.py ./util/gh-pages/versions.html out | |
| # Now let's go have some fun with the cloned repo | |
| cd out | |
| git config user.name "GHA CI" | |
| git config user.email "gha@ci.invalid" | |
| git status | |
| if [[ -n $TAG_NAME ]]; then | |
| # track files, so that the following check works | |
| git add --intent-to-add "$TAG_NAME" | |
| if git diff --exit-code --quiet -- $TAG_NAME/; then | |
| echo "No changes to the output on this push; exiting." | |
| exit 0 | |
| fi | |
| # Add the new dir | |
| git add "$TAG_NAME" | |
| # Update the symlink | |
| git add stable | |
| # Update the index.html file | |
| git add index.html | |
| git commit -m "Add documentation for ${TAG_NAME} release: ${SHA}" | |
| elif [[ $BETA = "true" ]]; then | |
| if git diff --exit-code --quiet -- beta/; then | |
| echo "No changes to the output on this push; exiting." | |
| exit 0 | |
| fi | |
| git add beta | |
| git commit -m "Automatic deploy to GitHub Pages (beta): ${SHA}" | |
| else | |
| if git diff --exit-code --quiet; then | |
| echo "No changes to the output on this push; exiting." | |
| exit 0 | |
| fi | |
| git add . | |
| git commit -m "Automatic deploy to GitHub Pages: ${SHA}" | |
| fi | |
| git push "$SSH_REPO" "$TARGET_BRANCH" |