-
Notifications
You must be signed in to change notification settings - Fork 74
/
deploy.sh
executable file
·38 lines (31 loc) · 1.19 KB
/
deploy.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/bash
set -e # exit with nonzero exit code if anything fails
# clear the dist directory
rm -rf dist || exit 0;
# get the existing gh-pages history, but clean out the files.
if [ "${TRAVIS_BRANCH}" == "staging" ]; then
GIT_URL="https://bwinton:${GH_TOKEN}@github.com/${TRAVIS_REPO_SLUG}-staging.git"
else
GIT_URL="https://bwinton:${GH_TOKEN}@github.com/${TRAVIS_REPO_SLUG}.git"
fi
git clone --quiet --branch=gh-pages ${GIT_URL} dist > /dev/null
cd dist
rm -rf *
cd ..
cd jekyll
bundle exec jekyll build
cd ..
cp -r jekyll/_site/* dist
# inside the gh-pages repo we'll pretend to be a new user
cd dist
git config user.name "Travis CI"
git config user.email "[email protected]"
if [ -n "$(git status --porcelain)" -a "${TRAVIS_PULL_REQUEST}" == "false" ]; then
git add -Af .
git commit -m "Deploy ${TRAVIS_COMMIT_RANGE} to GitHub Pages."
# Force push from the current repo's master branch to the remote
# repo's gh-pages branch. (All previous history on the gh-pages branch
# will be lost, since we are overwriting it.) We redirect any output to
# /dev/null to hide any sensitive credential data that might otherwise be exposed.
git push --force --quiet "${GIT_URL}" gh-pages
fi