X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=.github%2Fdeploy.sh;h=34225a5402904084617e9f19adaaa762d0aa5336;hb=6206086dd5a83477131094b1f0ef61b10e7ced42;hp=17eb35b46494a88582a36fc3789cc07af0e2134a;hpb=8fbeaa81d8c25cdf3c8eca34f287762d73b23a41;p=rust.git diff --git a/.github/deploy.sh b/.github/deploy.sh old mode 100755 new mode 100644 index 17eb35b4649..34225a54029 --- a/.github/deploy.sh +++ b/.github/deploy.sh @@ -1,22 +1,6 @@ #!/bin/bash -# Automatically deploy on gh-pages -set -e - -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 "$REPO" out - cd out - git checkout $TARGET_BRANCH -) +set -ex echo "Removing the current docs for master" rm -rf out/master/ || exit 0 @@ -24,60 +8,59 @@ 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/lints.json out/master -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 [[ -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 -# Generate version index that is shown as root index page -( - cp util/gh-pages/versions.html out/index.html - - cd out - python -c '\ - import os, json;\ - print json.dumps([\ - dir for dir in os.listdir(".")\ - if not dir.startswith(".") and os.path.isdir(dir)\ - ])' > versions.json -) - -# 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 +if [[ $BETA = "true" ]]; then + echo "Update documentation for the beta release" + cp -r out/master/* out/beta 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 +# Generate version index that is shown as root index page +cp util/gh-pages/versions.html out/index.html + +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 [ -z "$(git diff --exit-code)" ]; 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 -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"