Add post-receive script
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
# post-receive hook to build and deploy jekyll sites
|
||||
"/var/lib/git/gogs/gogs" hook --config='/var/lib/git/gogs/conf/app.ini' post-receive
|
||||
|
||||
GIT_REPO="$(pwd)"
|
||||
TMP_GIT_CLONE="/tmp/${GIT_REPO##*/}"
|
||||
|
||||
if [ ! -d "{$TMP_GIT_CLONE}" ]; then
|
||||
git clone "${GIT_REPO}" "$TMP_GIT_CLONE"
|
||||
cd "${TMP_GIT_CLONE}"
|
||||
else
|
||||
cd "${TMP_GIT_CLONE}"
|
||||
|
||||
# avoid breaking the build when force pushing
|
||||
git fetch --all
|
||||
git reset --hard origin/master
|
||||
|
||||
git pull
|
||||
fi
|
||||
|
||||
pushd "${TMP_GIT_CLONE}"
|
||||
|
||||
for site in *.*/; do
|
||||
[[ ! -d /var/www/${site} ]] && mkdir -p /var/www/${site} && chgrp -R /var/www/${site} && chmod g+s /var/www/${site}
|
||||
pushd ${site}
|
||||
bundle install --deployment
|
||||
bundle exec jekyll build --destination /var/www/${site}
|
||||
popd
|
||||
done
|
||||
|
||||
|
||||
exit
|
||||
Reference in New Issue
Block a user