-
Notifications
You must be signed in to change notification settings - Fork 0
/
stage
executable file
·42 lines (35 loc) · 1.36 KB
/
stage
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
39
40
41
42
#!/bin/sh
red=$'\e[1;31m'
grn=$'\e[1;32m'
end=$'\e[0m'
account='training-staging'
if [ "$1" = "" ]
then
repo="caption-this"
else
repo=$1
fi
# Build the site
#
# Generate the Jekyll site with an alterate baseurl for the intenral-only
# staging site, but don't start a local server.
printf "\n${grn}# Building site...\n--------------------------------------------------${end}\n"
DISABLE_WHITELIST=1 bundle exec jekyll build --baseurl "/${account}/${repo}"
# Create a temp Git repo to push from
#
# 1. From the compiled Jekyll `_site` directory
# 2. Initialize a new repo within that directory
# 3. Add a new remote called staging that we can push to
# 4. Add all our files
# 5. Write a generic commit message
printf "\n${grn}# Creating a temp Git repo...\n--------------------------------------------------${end}\n"
cd _site && git init && git remote add staging https://ghe.io/${account}/${repo}.git && git add . && git commit -m "Staging latest changes"
# Push the site
#
# Push the new `_site` temporary repo to our remote staging repo, then remove
# the remote again to do it all over again afterwards.
printf "\n${grn}# Publishing...\n--------------------------------------------------${end}\n"
git push staging master:gh-pages --force && git remote rm staging
# Celebrate and open the staging site
printf "\n${grn}# Success!${end}\n"
open https://pages.ghe.io/${account}/${repo}/