Wir erwägen die Verwendung des Jenkins Pipeline-Plugins für ein ziemlich komplexes Projekt, das aus mehreren Lieferungen besteht, die mit verschiedenen Tools (auf verschiedenen Maschinen) erstellt werden müssen, bevor sie zusammengeführt werden. Dennoch scheint es einfach zu sein, einen vollständigen Build mit einer einzelnen Jenkinsfile
zu erstellen, und ich mag die automatische Erkennung von Git-Verzweigungen, die mit Pipeline geliefert wird.Teile einer Pipeline als separaten Job ausführen
An diesem Punkt haben wir jedoch Jobs für jede der Lieferungen und verwenden einen Build-Flow-basierten "Meta" -Auftrag, um die einzelnen Jobs zu orchestrieren. Das Schöne daran ist, dass es auch erlaubt, nur einen einzelnen Job zu starten, wenn nur kleine Änderungen vorgenommen wurden, nur um zu sehen, ob diese Lieferung noch kompiliert.
Um dies zu emulieren, kamen einige Ideen in den Sinn:
- Verwenden Sie unterschiedliche
Jenkinsfile
s für die Lieferungen undload
sie in der obersten EbeneJenkinsfile
; Es scheint, dass der Job Multibranch Pipeline die Konfiguration desJenkinsfile
noch nicht zu verwenden erlaubt (https://issues.jenkins-ci.org/browse/JENKINS-35415), aber das Erstellen der Jobs für die einzelnen Lieferungen ist noch offen. - Stellen Sie eine Konfigurationsoption für den Auftrag "oberster Ebene" bereit und lassen Sie
if
s für alle Lieferungen in derJenkinsfile
auswählen, welche erstellt werden soll. Dies würde verschiedene Build-Typen in einer Pipeline mischen und zumindest die Schätzung der Build-Zeit durcheinander bringen.
Sind diese realisierbaren Optionen, oder gibt es eine bessere?
Diese Frage ist sehr ähnlich zu http://StackOverflow.com/Questions/38129745/Jenkins-Build-Pipeline-Restart-AT-Stage, obwohl das über Neustart ist. Für diese Frage gibt es aber auch Antworten auf diese Frage. – olenz