2016-07-25 5 views
6

Ich möchte meine Builds mit der Jenkins 2-Pipeline-Funktion definieren und ich möchte diese Konfiguration aus Quellen in einem Jenkinsfile geladen werden. Allerdings möchte ich nicht meinen master Knoten mit Arbeitsbereich überladen.So vermeiden Sie Auschecken von Quellen auf Master-Knoten mit Jenkins-Pipeline

Im Idealfall könnte ich angeben, dass ein Pipeline-Job einen bestimmten Knotentyp ausführen soll, aber das scheint nicht möglich.

Ich sehe zwei Alternativen:

  • Verwendung ein spezielles Repository, in dem die jenkins Job-Konfiguration gespeichert ist.
  • Verwenden Sie eine Cleaver-Git-Checkout-Strategie (flach + spärlich).

Habe ich etwas übersehen? Was wäre die beste Praxis?

+1

Gute Frage. Ich war sehr überrascht, den jenkins-Meister zu beobachten, wie er das gesamte 500-MB-Repository unseres Software-Projekts auscheckte, nur um die Jenkins-Datei darin zu lesen. Es macht keinen Sinn diesen Checkout auf dem Master zu haben, da alle Builds auf unterschiedlichen Slaves laufen, die das Ganze nochmal auschecken ... – Bluehorn

Antwort

0

Ich denke, dass Sie Jenkinsfile verwenden können. Aber vermeiden Sie Schritt 'git checkout' zu verwenden Workspace sind nicht akzeptabel von Jenkins Web-Interface. Sie können also jenkinsfile verwenden, um Ihre Builds zu verwalten.

+0

Ich verstehe es nicht. Wie vermeide ich den Schritt "git checkout"? –

+0

Ich denke auch ich. Sie fügen einfach kein 'git checkout' in Ihre Jenkins-Datei ein. und Sie können alle Stufen an Ihren Slaves mit sh-Befehl – whitediver

+0

Das wird nicht funktionieren, da Jenkinsfile * auf dem Master ausgecheckt werden muss, um gelesen zu werden (und dann den Inhalt ausführen). Wenn Sie Ihren Job konfigurieren, müssen Sie ein SCM-Repository angeben, in dem die Jenkins-Datei verbleibt. Aber es gibt keine Möglichkeit zu kontrollieren, wo dies geschehen soll. –