Jenkins polling a git-notify

Minulý rok jsem psal o tom, že polling v Jenkinsu je zlo. To stále platí, ale i když máte tento přístup nemusí to stačit.

Tady je příklad hooku pro gitolite, který používáme na některých repository.

Občas je potřeba notifikovat jen větev, která se změní, aby to nepustilo zbytečně joby, kde změny neproběhli.

Nejdůležitější části, jsou detekce větve, escape lomítka ve jménech větve.

branch=$(git rev-parse --symbolic --abbrev-ref $1)
escaped_branch=$(echo $branch | sed s:/:%2F:g)

potom vlastní git-notify volání curlem.

REPOSITORY_BASENAME=$(basename "$PWD")
curl "http://jenkins.firma.cz/git/notifyCommit?url=ssh://git@git.firma.cz/$REPOSITORY_BASENAME&branch=$escaped_branch"

Snad to bude někomu užitečné také, pokud si chcete o Jenkinsu popovídat více, dejte vědět.

Comments