2013-11-01 5 views
8

Ist es aufgrund spezieller Commit-Nachrichtenmuster möglich, einen Job in Jenkins abzubrechen oder zu überspringen? Ich dachte, die Option "Ausgeschlossen Commit Kommentare" in der Job-Konfiguration macht dies für mich out of the box, wie erwähnt here. Aber egal, welchen regulären Ausdruck ich in diesem Feld schreibe, der Build wird dennoch ausgeführt. Beispiel: Ich möchte den Build-Job nur ausführen, wenn die Commit-Nachricht den Ausdruck "release" enthält. Also schreibe ich den regulären Ausdruck [^ (?: Release)] in das Kommentarkommentar. Ich dachte, wenn ich eine Revision mit zum Beispiel "test commit" begehen würde, würde der Build-Job nicht funktionieren, oder? Ist dies der richtige Weg, wenn kein Post-Commit-Hook verwendet wird?Jenkins: Build aufgrund der Commit-Nachricht vermeiden

+0

Haben Sie einfachere Ausdrücke ausprobiert? Versuchen Sie, eine Übereinstimmung zu erhalten, die alles ausschließt, egal wie einfach. – hofan41

Antwort

4

Jenkins Git-Plugin stellt Ihnen die Umgebungsvariable GIT_COMMIT zur Verfügung, die natürlich den aktuellen Git-Commit-Hash enthält. Verwenden [Jenkins Conditional Step] und einen Schritt bauen, die die folgenden Bash-Shell ausführen:

echo "===========================" 

if [ "git show $GIT_COMMIT | grep "your-pattern-here" == false ] ; then 
     echo "pattern failed"; 
     exit 1 
else 
     echo "ok" 
fi 

echo "===========================" 

Und markieren, dass, wenn die Schale nicht, scheitern die Build.

+1

Ich denke, der Code oben ist nahe, aber nicht ganz richtig. Das hat bei mir funktioniert ... 'code' wenn [[$ (git show $ GIT_COMMIT | grep" [zu überspringende Zeichenfolge] "| wc -m) -ne 0]]; dann echo "überspringen dieses commit" exit 0 sonst echo "ok zu bauen" fi 'code' – adampasz

3

späte Antwort aber kann jemand in Zukunft helfen, Es ist ein Plugin Build überspringen abhängig von git Nachricht begehen, sind nur ein [ci-skip] in der Nachricht junkin begehen wird die Build-

jenkins-ci-skip-plugin überspringen