diff --git a/.travis.yml b/.travis.yml index ef31870bc..c31f0f431 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,9 @@ cache: directories: - node_modules install: npm install -script: bash ./docs/deploy/deploy.sh +script: + - npm run test + - bash ./docs/deploy/deploy.sh env: global: - ENCRYPTION_LABEL: "af862fa96d3e" diff --git a/docs/deploy/deploy.sh b/docs/deploy/deploy.sh index 4b71f8f5c..ad15f839e 100644 --- a/docs/deploy/deploy.sh +++ b/docs/deploy/deploy.sh @@ -4,7 +4,11 @@ set -e function build { + # Build docs node docs/generator + + # Build the webpack + VERSIONED=false npm run web-dist } # Ignore Travis checking PRs @@ -15,7 +19,9 @@ if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then fi # Ignore travis checking other branches irrelevant to users -if [ "$TRAVIS_BRANCH" != "master" -a "$TRAVIS_BRANCH" != "indev" ]; then +# Apparently Travis considers tag builds as separate branches so we need to +# check for that separately +if [ "$TRAVIS_BRANCH" != "master" -a "$TRAVIS_BRANCH" != "indev" -a "$TRAVIS_BRANCH" != "$TRAVIS_TAG" ]; then echo "deploy.sh: Ignoring push to another branch than master/indev" build exit 0 @@ -29,19 +35,27 @@ if [ -n "$TRAVIS_TAG" ]; then SOURCE=$TRAVIS_TAG fi +# Initialise some useful variables REPO=`git config remote.origin.url` SSH_REPO=${REPO/https:\/\/github.com\//git@github.com:} SHA=`git rev-parse --verify HEAD` -TARGET_BRANCH="docs" +# Decrypt and add the ssh key +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 docs/deploy/deploy_key.enc -out deploy_key -d +chmod 600 deploy_key +eval `ssh-agent -s` +ssh-add deploy_key + +# Build everything +build # Checkout the repo in the target branch so we can build docs and push to it +TARGET_BRANCH="docs" git clone $REPO out -b $TARGET_BRANCH -cd out -cd .. - -# Build the docs -build # Move the generated JSON file to the newly-checked-out repo, to be committed # and pushed @@ -49,20 +63,28 @@ mv docs/docs.json out/$SOURCE.json # Commit and push cd out +git add . git config user.name "Travis CI" git config user.email "$COMMIT_AUTHOR_EMAIL" - -git add . git commit -m "Docs build: ${SHA}" - -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 ../docs/deploy/deploy_key.enc -out deploy_key -d -chmod 600 deploy_key -eval `ssh-agent -s` -ssh-add deploy_key - -# Now that we're all set up, we can push. +git push $SSH_REPO $TARGET_BRANCH + +# Clean up... +cd .. +rm -rf out + +# ...then do the same once more for the webpack +TARGET_BRANCH="webpack" +git clone $REPO out -b $TARGET_BRANCH + +# Move the generated webpack over +mv webpack/discord.js out/discord.$SOURCE.js +mv webpack/discord.min.js out/discord.$SOURCE.min.js + +# Commit and push +cd out +git add . +git config user.name "Travis CI" +git config user.email "$COMMIT_AUTHOR_EMAIL" +git commit -m "Webpack build: ${SHA}" git push $SSH_REPO $TARGET_BRANCH