| #!/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/script.js out/master |
| cp util/gh-pages/lints.json 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 "[email protected]" |
| |
| 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 |
| 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" |