2016-04-19 3 views
0

Ich habe Jenkins eingerichtet und ich verwende den Jenkins Workflow Multibranch-Plugin. Ich habe es so konfiguriert, dass ich auf Commits in einem GitHub Repo für jeden Zweig lausche. Ziehen Sie den aktuellen Zweig mit Jenkins Workflow Multibranch-Plugin

Dies ist eine Probe des Jenkinsfile begangen in einem der Zweige:

node { 
    // Mark the code checkout 'stage'.... 
    stage 'Checkout' 

    // Get some code from a GitHub repository 
    git url: '[email protected]:Me/my-repo.git', credentialsId: '###' 

    // Get the maven tool. 
    // ** NOTE: This 'M3' maven tool must be configured 
    // **  in the global configuration. 
    def mvnHome = tool 'M3' 

    stage 'Build' 
    sh "${mvnHome}/bin/mvn clean install" 
} 

Wenn ich etwas in diesem Zweig begehen ein Build ausgelöst wird. Das Problem ist, dass Git den Master-Zweig auscheckt und nicht den Zweig, der gerade entsteht.

Wie kann ich die Filiale für den aktuellen Build auschecken?


Die Lösungen bisher

  1. Verwenden checkout scm statt git url: '[email protected]:Me/my-repo.git', credentialsId: '###' Auf diese Weise werden Sie den aktuellen Zweig der Kasse.
  2. den Zweig Variable verwenden - Aktivieren Sie diese für weitere Informationen: Jenkins Multibranch pipeline: What is the branch name variable?

Antwort

1

In Ihrem Jenkinsfile, fügen Sie den Namen des Zweigs mit dem branch Parameter auf der git Linie zur Kasse:

git {...}, branch: 'branch-name' 

Some Build-Trigger legen eine Umgebungsvariable fest, die den Verzweigungsnamen enthält (z. B. Gerrit Trigger Plugin setzt GERRIT_BRANCH), mit der Sie branch auf diese Umgebungsvariable setzen können, anstatt hart zu codieren r Zweigstelle.

+0

Vielen Dank für die Antwort. Ich habe herausgefunden, dass ich 'checkout scm' anstelle von' git' verwenden kann. Es prüft den aktuellen Zweig. –

+0

Oh, das ist viel besser als meine Antwort. –

Verwandte Themen