Ich habe Jenkins mit Bitbucket über das Bitbucket-Plugin integriert . Gemäß dem Wiki des Plugins wird ein bestimmter Job ausgelöst, wenn das Repository im SCM des Jobs festgelegt ist. Wenn Sie SCM in einem Jenkins-Job festlegen, wird dies bekanntlich in der Vorbereitungsphase geklont.
So weit, ist es gut. Der Hauptzweck des Jobs, den ich festlege, hat jedoch nichts mit dem Inhalt des Repositorys zu tun. Stattdessen soll der Job nur die von Bitbucket gesendeten Nutzdaten verarbeiten. Man könnte sagen, es ist im Hinblick auf die Speicherkapazität keine große Sache, ein Repository zu klonen, obwohl Sie es wirklich nicht benötigen. Ich denke nicht, unnötige Schritte hinzuzufügen, Zeit und Ressourcen zu verbrauchen, ist keine gute Praxis.
Die Frage ist also: Weiß jemand, wie man einen SCM in einem Jenkins-Job einstellt, ihn aber daran hindert, das Repository zu klonen?
Antworten:
Ja auf jeden Fall. Ich mache das die ganze Zeit. Sie können Konfigurationsoptionen für Ihre Pipeline angeben. Eine davon
skipDefaultCheckout
bewirkt, dass die Pipeline die Standardstufe "Deklarativ: Checkout-SCM" überspringt.Die
skipDefaultCheckout
Option ist in der Pipeline-Syntax dokumentiert. Hier ist ein Beispiel für eine Jenkins-Datei, die zeigt, wie sie verwendet wird:quelle
checkout scm
um manuell zu klonen, wo Sie müssen. Siehe devops.stackexchange.com/a/1916/2450 .Wenn Sie die deklarative Pipeline nicht verwenden, können Sie das Auschecken aus SCM vermeiden, indem Sie:
quelle
Ich denke, Sie möchten eine Webhook-Payload in einem Jenkins-Job verarbeiten. Die Verwendung des Bitbucket-Plugins ist nicht erforderlich, und es ist wahrscheinlich stark darauf ausgelegt, das Repo zu klonen.
Ich glaube, diese Stackoverflow-Antwort könnte Ihnen helfen.
quelle