RIA-Developer

profesjonalizm w tworzeniu oprogramowania

Deployment

Git hooks – szybki deployment

W przypadku kiedy w swoim projekcie – mniejszym lub większym – korzystasz z systemu kontroli wersji git warto zapoznać się z funkcjonalnością, którą dostarcza git a mianowicie git hooks. Git hooks czy jak kto woli po naszemu haki ang. hook -hak, jest funkcjonalnością, która automatycznie pozwala uruchomić zdefiniowane skrypty na określone zachowania w systemie czyt. systemie kontroli wersji.

Z listą wszystkich dostępnych hooks można zapoznać się w tutaj. W poniższym, krótkim artykule przyjrzymy się jednemu z nich a mianowicie post-receive. Skrypt ten uruchamiany jest w momencie kiedy proces wchodzący jest zakończony. Może być wykorzystywany do aktualizacji innych procesów lub po prostu do powiadomienia użytkownika o zakończeniu procesu.

#!/bin/bash

#path to root directory of your project
TARGET="/home/project/dev"

#path to git bare repository
GIT_DIR="/home/project/project.bare"


BRANCH="develop"

while read oldrev newrev ref
do
    if [ "$ref" = "refs/heads/$BRANCH" ];
    then
        echo "Ref $ref received. Deploying ${BRANCH} branch..."
        #git --work-tree=$TARGET --git-dir=$GIT_DIR checkout -f $BRANCH
        cd $TARGET
        unset GIT_DIR
        git pull
    else
        echo "Ref $ref received. Doing nothing: only the ${BRANCH} branch may be deployed on this server."
    fi
done