Vincent Lammens

Terug

Site automatisch deployen met git hooks

2022/03/25
tutorial
git, git-hooks, autodeploy, automatisatie, git-autodeploy

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)