2017-11-22 3 views
0

Ich habe eine einfache Jenkinsfile, die nur ein paar Schritte Echo. Ich habe ein neues Repository auf Bitbucket (Git) und zwei Zweige namens Master und entwickeln.Jenkins Pipeline, die alle Zweige gleichzeitig erstellt

Wenn ich etwas zu meistern, dann beide Filialen Kasse und bauen in Jenkins. Gleiches Verhalten im Entwicklungszweig.

Ist es möglich, nur Master zu begrenzen, um in Jenkins zu bauen, sobald es einen Commit zum Master-Zweig gibt? Ähnliches Verhalten zu entwickeln?

+0

'' 'if (env.BRANCH == 'Master') {// tun, um die Build }' '' – albertjan

+0

Es scheint, dass die erwartete Pipeline Verhalten, aber ich kann ein Dokument nicht finden, die es erklärt. Ich versuche Builds basierend auf Tags und regulären Commits auszulösen. Zum Beispiel möchte ich auf dem Master, dass es nur erstellt, wenn ein neues Tag hinzugefügt wird. – Squirrel

+0

@albertjan Ich habe zwei Zweige und so, zwei Jenkinsfile. Muss ich für jeden Zweig duplizieren und spezifizieren. Scheint kontraintuitiv – Squirrel

Antwort

0

Ich denke, Sie können eine temporäre Textdatei verwenden, um letzte erfolgreiche Build-SHA ($ LAST_SUCCESSFUL_BUILD_SHA) von jedem Zweig zu speichern. Bei einem neuen Commit aus dem Repo überprüfen wir dann, aus welchem ​​Zweig das Commit stammt.

Wenn das neue Commit von einem anderen Zweig kommt, ist es gut, Jenkins open API zu verwenden, um den Build zu überspringen.

Ich habe dies für meine Freestyle-Jobs angewendet, aber nicht mit Jenkinsfile versucht.