Add post-receive hook for automated deployments
This commit is contained in:
parent
fc3f297b46
commit
44a2404eaf
22
hooks/post-receive
Normal file
22
hooks/post-receive
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
GIT_REPO=$HOME/vbrandl.git
|
||||||
|
WORKING_DIRECTORY=$HOME/vbrandl-working
|
||||||
|
PUBLIC_WWW="/var/www/vbrandl.net"
|
||||||
|
BACKUP_WWW=$HOME/blog_backup
|
||||||
|
MY_DOMAIN=www.vbrandl.net
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
rm -rf $WORKING_DIRECTORY
|
||||||
|
rsync -aqz ${PUBLIC_WWW}/ $BACKUP_WWW
|
||||||
|
trap "echo 'A problem occurred. Reverting to backup.'; rsync -aqz --del $BACKUP_WWW/ $PUBLIC_WWW; rm -rf $WORKING_DIRECTORY" EXIT
|
||||||
|
|
||||||
|
git clone $GIT_REPO $WORKING_DIRECTORY
|
||||||
|
cd $WORKING_DIRECTORY
|
||||||
|
git submodule update --init --recursive --remote
|
||||||
|
rm -rf $PUBLIC_WWW/*
|
||||||
|
hugo -s $WORKING_DIRECTORY -d ${PUBLIC_WWW} -b "https://${MY_DOMAIN}"
|
||||||
|
find $PUBLIC_WWW -type f \( -name '*.html' -o -name '*.js' -o -name '*.css' -o -name '*.xml' -o -name '*.svg' \) -exec gzip -v -k -f --best {} \; -exec touch -r {} "{}.gz" \;
|
||||||
|
rm -rf $WORKING_DIRECTORY
|
||||||
|
trap - EXIT
|
Loading…
Reference in New Issue
Block a user