Skip to content

Commit

Permalink
adds shell scripts for auto deployment of JSDocs to gh-pages branch
Browse files Browse the repository at this point in the history
updates travis to run the shell script
  • Loading branch information
prasadtalasila committed Dec 3, 2017
1 parent 9b26aed commit 48a4606
Show file tree
Hide file tree
Showing 4 changed files with 103 additions and 4 deletions.
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
language: node_js
node_js:
- "6"
- "8"
before_script:
- npm install
script:
- npm test
- npm run-script jsdocs
- bash script/docs_auto_deploy.sh
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"name": "@autolabjs/autolabcli",
"version": "0.1.1",
"description": "Command line interface for JavaAutolab",
"description": "Command line interface for AutolabJS",
"main": "index.js",
"scripts": {
"lint": "eslint test/*.js lib/*.js *.js",
"test:watch": "npm run test -- -w",
"pretest": "node index.js && export PATH=$PATH:./node_modules/.bin",
"test": "nyc --reporter=lcov --reporter=text-lcov -s --all mocha test > /dev/null",
"posttest": "nyc report && nyc report --reporter=text-lcov | coveralls",
"jsdocs": "jsdoc -c conf.json"
"jsdocs": "./node_modules/jsdoc/jsdoc.js --configure conf.json --private --recurse --readme README.md index.js lib/"
},
"keywords": [
"AutoLab",
Expand Down
99 changes: 99 additions & 0 deletions script/docs_auto_deploy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
#!/bin/bash

###################
# Author: Domenic Denicola
# Modifications by: Prasad Talasila
# Date: 3-December-2017
###################


set -e # Exit with nonzero exit code if anything fails

SOURCE_BRANCH="master"
TARGET_BRANCH="gh-pages"
ENCRYPTION_LABEL="cd6b11287fde"
COMMIT_AUTHOR_EMAIL="tsrkp@goa.bits-pilani.ac.in"

function createDocs {
npm run-script jsdocs
mv out/@autolabjs/autolabcli/0.1.1/* out/
rm -rf out/@autolabjs
cp -rf out/* docs/
}

# Pull requests and commits to other branches shouldn't try to deploy, just build to verify
if [ "$TRAVIS_PULL_REQUEST" != "false" -o "$TRAVIS_BRANCH" != "$SOURCE_BRANCH" ]; then
echo "Skipping deploy; just doing a build."
exit 0
fi

# 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/
# Create a new empty branch if gh-pages doesn't exist yet (should only happen on first deply)
git clone $REPO docs
cd docs
git checkout $TARGET_BRANCH || git checkout --orphan $TARGET_BRANCH
cd ..

# Clean out existing contents
rm -rf docs/**/* || exit 0

# create the sphinx documents
createDocs

# Now let's go have some fun with the cloned repo
cd docs
git config user.name "Travis CI"
git config user.email "$COMMIT_AUTHOR_EMAIL"

# If there are no changes to the compiled out (e.g. this is a README update) then just bail.
if [ -z $(git diff --exit-code > /dev/null) ]; then
echo "No changes to the documentation on this push; exiting."
exit 0
fi

# Commit the "changes", i.e. the new version.
# The delta will show diffs between new and old versions.
git add .
git commit -m "[Travis Commit] Automated Deploy to gh-pages | Caused by ${SHA}
refer auto_commit_script: https://github.com/AutolabJS/autolabcli/blob/$SOURCE_BRANCH/script/doc_auto_deploy.sh
"

#go to parent directory and perform SSH configuration
cd ..
# Get the deploy key by using Travis's stored variables to decrypt deploy_key.enc
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 script/docs_deploy_key.enc -out script/docs_deploy_key -d
chmod 600 script/docs_deploy_key
eval `ssh-agent -s`
ssh-add script/docs_deploy_key

#go to docs/ directory and commit the gh-pages/ update
cd docs/
#check the git repo context
pwd
echo repo=$SSH_REPO
echo branch=$TARGET_BRANCH
echo "===show local gh-pages commit logs==="
git log --oneline -n 5
echo "===show remote gh-pages commit logs==="
git log --oneline -n 5 origin/$TARGET_BRANCH
echo "===show remote commits above the current local commit==="
git log HEAD..origin/$TARGET_BRANCH
echo "===show status of local branch==="
git status

# Now that we're all set up, we can push.
git push $SSH_REPO $TARGET_BRANCH


##References
#https://gist.github.com/domenic/ec8b0fc8ab45f39403dd
#https://github.com/travis-ci/travis.rb
Binary file added script/docs_deploy_key.enc
Binary file not shown.

0 comments on commit 48a4606

Please sign in to comment.