From 0296a717935483476f26def6a6219ae819c6ae13 Mon Sep 17 00:00:00 2001 From: meew0 Date: Wed, 26 Oct 2016 16:54:53 +0200 Subject: [PATCH] Improve the docs building process (#834) * Add a script to automatically build and push docs This script will checkout the repo in the `docs` branch, then build the docs locally, copy it to that repo, commit and push. It is designed to be used in conjunction with Travis. * Add unencrypted deploy keys to the gitignore * Make Travis automatically execute the deploy script * Add the encrypted deploy key * Update the .travis.yml with the necessary information --- .gitignore | 6 +++- .travis.yml | 6 ++++ docs/deploy/deploy.sh | 68 +++++++++++++++++++++++++++++++++++++ docs/deploy/deploy_key.enc | Bin 0 -> 3248 bytes 4 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 docs/deploy/deploy.sh create mode 100644 docs/deploy/deploy_key.enc diff --git a/.gitignore b/.gitignore index 9167b884f285..5b0cfbfeb584 100644 --- a/.gitignore +++ b/.gitignore @@ -35,4 +35,8 @@ build/Release node_modules test/auth.json examples/auth.json -docs/_build \ No newline at end of file +docs/_build + +# Secret keys +docs/deploy/deploy_key +docs/deploy/deploy_key.pub diff --git a/.travis.yml b/.travis.yml index 82e77e0af18c..519e1f82bdc1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,3 +5,9 @@ cache: directories: - node_modules install: npm install +script: bash ./docs/deploy/deploy.sh +env: + global: + - ENCRYPTION_LABEL: "be0b3b658a36" + - COMMIT_AUTHOR_EMAIL: "amishshah.2k@gmail.com" + diff --git a/docs/deploy/deploy.sh b/docs/deploy/deploy.sh new file mode 100644 index 000000000000..fa0cdfa701d3 --- /dev/null +++ b/docs/deploy/deploy.sh @@ -0,0 +1,68 @@ +#!/bin/bash +# Adapted from https://gist.github.com/domenic/ec8b0fc8ab45f39403dd. + +set -e + +function build { + node docs/generator/generator.js +} + +# Ignore Travis checking PRs +if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then + echo "deploy.sh: Ignoring PR build" + build + exit 0 +fi + +# Ignore travis checking other branches irrelevant to users +if [ "$TRAVIS_BRANCH" != "master" -a "$TRAVIS_BRANCH" != "indev" ]; then + echo "deploy.sh: Ignoring push to another branch than master/indev" + build + exit 0 +fi + +SOURCE=$TRAVIS_BRANCH + +# Make sure tag pushes are handled +if [ -n "$TRAVIS_TAG" ]; then + echo "deploy.sh: This is a tag build, proceeding accordingly" + SOURCE=$TRAVIS_TAG +fi + +REPO=`git config remote.origin.url` +SSH_REPO=${REPO/https:\/\/github.com\//git@github.com:} +SHA=`git rev-parse --verify HEAD` + +TARGET_BRANCH="docs" + +# Checkout the repo in the target branch so we can build docs and push to it +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 +mv docs/docs.json out/$SOURCE.json + +# Commit and push +cd out +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 diff --git a/docs/deploy/deploy_key.enc b/docs/deploy/deploy_key.enc new file mode 100644 index 0000000000000000000000000000000000000000..dcf2a4296722a4105af0a5dcd9ecc55767627bfb GIT binary patch literal 3248 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 i(B+@jT+t=xhGEV2z+wPP+fPnvt}kn