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
Antwort
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.
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
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
Haben Sie einfachere Ausdrücke ausprobiert? Versuchen Sie, eine Übereinstimmung zu erhalten, die alles ausschließt, egal wie einfach. – hofan41