it-swarm.com.de

Hudson/Jenkins Git bauen alle Niederlassungen auf

Wir haben viele Entwickler, die Funktionszweige erstellen, die ich gerne erstellen würde. Nächtlich führen wir ein Code Quality Tool aus, das in jedem Zweig ausgeführt werden muss. Ich möchte auch keine statische Konfiguration, da sich die Anzahl der Zweige alle paar Wochen ändert.

31
babsher

In der Git-Konfiguration gibt es ein Feld 'Branch Specifier (leer für Standard):' Wenn Sie dort ** setzen, werden alle Zweige von allen Fernbedienungen erstellt.

damit können Sie eine Umgebungsvariable $ {GIT_BRANCH} verwenden, z. Einen Titel für den Build mithilfe von https://wiki.jenkins-ci.org/display/JENKINS/Build+Name+Setter+Plugin oder für andere Zwecke festlegen

37
Tomasz Bartczak

Ich hatte das gleiche Problem gelöst. Erstellen Sie eine ZIP-Datei aus allen Zweigen und bieten Sie diese als Artefakte an, die in verschiedenen Testaufträgen verwendet werden sollen.

In "Niederlassungen zu bauen" setzen Sie "**"

Führen Sie dann die Shell aus:

while read -ra ITEM; do
  for i in "${ITEM[@]}"; do
    git checkout $i
    <do your stuff>
  done
done <<< $(git branch -r | grep -v "HEAD ->" | xargs -L 1 | cut -d'/' -f2)

Dadurch wird die Liste der Zweige gelesen, jeder von ihnen einzeln ausgecheckt und kann in jedem Zweig erledigt werden. Der Befehl <<< konvertiert diese Ausgabe:

  Origin/HEAD -> Origin/master
  Origin/branch1
  Origin/master
  Origin/secondbranch

in die Checkout-Liste:

branch1
master
secondbranch
6
Squrppi

Alte Frage, aber etwas passendere Antwort. Mit dem unten aufgeführten Plug-In für mehrere Zweigstellen können Sie einen Build-Element-Typ erstellen, der Unterprojekte mit Zweigen auflädt und die Konfiguration automatisch von der obersten Ebene zu Unterprojekten synchronisiert

https://wiki.jenkins-ci.org/display/JENKINS/Multi-Branch+Project+Plugin

Für ein etwas aufwendigeres Vorgehen bietet das Seed -Plugin eine große Flexibilität bei der Definition von Teiljobs

https://github.com/jenkinsci/seed-plugin/wiki

1
kert

Der ** for branch-Bezeichner wird gegen alle Zweige UND alle Tags ausgeführt. Wenn Sie nur Zweige wünschen, verwenden Sie einen Zweigspezifizierer für refs/heads/*.

0
Delta Echo