X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=.github%2Fdeploy.sh;h=5a59f94ec918bbc3c824b828f97a53ea98979034;hb=490c773e66d28a3b07a87af8d27d844ed6ed6efc;hp=b8209159284669ce911cad9e89f07d66cc6d5109;hpb=cfcd53dd4c222eba2697cd7843f38066a69fca44;p=rust.git diff --git a/.github/deploy.sh b/.github/deploy.sh old mode 100755 new mode 100644 index b8209159284..5a59f94ec91 --- a/.github/deploy.sh +++ b/.github/deploy.sh @@ -1,79 +1,67 @@ #!/bin/bash -# Automatically deploy on gh-pages - set -ex -SOURCE_BRANCH="master" -TARGET_BRANCH="gh-pages" - -# Save some useful information -REPO=$(git config remote.origin.url) -SSH_REPO=${REPO/https:\/\/github.com\//git@github.com:} -SHA=$(git rev-parse --verify HEAD) - -# Clone the existing gh-pages for this repo into out/ -git clone --quiet --single-branch --branch "$TARGET_BRANCH" "$REPO" out - 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 -python ./util/export.py out/master/lints.json +cp util/gh-pages/script.js out/master +cp util/gh-pages/lints.json 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 [[ -n "$TRAVIS_TAG" ]]; then - echo "Save the doc for the current tag ($TRAVIS_TAG) and point current/ to it" - cp -r out/master "out/$TRAVIS_TAG" - rm -f out/current - ln -s "$TRAVIS_TAG" out/current +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 cp util/gh-pages/versions.html out/index.html -pushd out - -cat <<-EOF | python - > versions.json -import os, json -print json.dumps([ - dir for dir in os.listdir(".") if not dir.startswith(".") and os.path.isdir(dir) -]) -EOF -popd -# Pull requests and commits to other branches shouldn't try to deploy, just build to verify -if [[ "$TRAVIS_PULL_REQUEST" != "false" ]] || [[ "$TRAVIS_BRANCH" != "$SOURCE_BRANCH" ]]; then - # Tags should deploy - if [[ -z "$TRAVIS_TAG" ]]; then - echo "Generated, won't push" - exit 0 - fi -fi +echo "Making the versions.json file" +python3 ./util/versions.py out # Now let's go have some fun with the cloned repo cd out -git config user.name "Travis CI" -git config user.email "travis@ci.invalid" +git config user.name "GHA CI" +git config user.email "gha@ci.invalid" -if git diff --exit-code --quiet; then +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 versions file + git add versions.json + 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 -# Get the deploy key by using Travis's stored variables to decrypt deploy_key.enc -ENCRYPTION_LABEL=e3a2d77100be -ENCRYPTED_KEY_VAR="encrypted_${ENCRYPTION_LABEL}_key" -ENCRYPTED_IV_VAR="encrypted_${ENCRYPTION_LABEL}_iv" -ENCRYPTED_KEY=${!ENCRYPTED_KEY_VAR} -ENCRYPTED_IV=${!ENCRYPTED_IV_VAR} -openssl aes-256-cbc -K "$ENCRYPTED_KEY" -iv "$ENCRYPTED_IV" -in .github/deploy_key.enc -out .github/deploy_key -d -chmod 600 .github/deploy_key -eval "$(ssh-agent -s)" -ssh-add .github/deploy_key - -git add . -git commit -m "Automatic deploy to GitHub Pages: ${SHA}" - -# Now that we're all set up, we can push. git push "$SSH_REPO" "$TARGET_BRANCH"