Site automatisch deployen met git hooks
Om een repository automatisch te deployen kan je de volgende git hook toevoegen aan de git repository.
Deze hook voeg je toe aan een bare repo. Deze maak je aan met git init --bare ~/git-repo.git
. Hierna plaats je de volgende code in het bestand ~/git-repo.git/hooks/post-receive
.
#!/bin/bash
TARGET="/home/user/target-dir"
GIT_DIR="/home/user/git-repo.git"
BRANCH="master"
while read oldrev newrev ref
do
# only checking out the master (or whatever branch you would like to deploy)
if [ "$ref" = "refs/heads/$BRANCH" ];
then
echo "Ref $ref received. Deploying ${BRANCH} branch to production..."
git --work-tree=$TARGET --git-dir=$GIT_DIR checkout -f $BRANCH
else
echo "Ref $ref received. Doing nothing: only the ${BRANCH} branch may be deployed on this server."
fi
done
Daarna moet je het bestand gewoon nog uitvoerbaar maken (chmod -x ~/git-repo.git/hooks/post-recieve
) en naar de repository pushen (bijvoorbeeld over ssh als deze op een remote host staat)