2016-04-19 2 views
0

Я создал Jenkins, и я использую многоплановый плагин Jenkins. Я настроил его для прослушивания коммитов в репозитории GitHub для любой ветки.Потяните текущую ветку с помощью многопланового плагина Jenkins.

Это образец Jenkinsfile, совершенные в одной из ветвей:

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" 
} 

Когда я совершаю что-то в этой отрасли накопление срабатывает. Проблема в том, что git проверяет главную ветвь, а не ветку, которая строится в данный момент.

Как я могу проверить ветку для текущей сборки?


Решения до сих пор

  1. Использование checkout scm вместо git url: '[email protected]:Me/my-repo.git', credentialsId: '###' Таким образом, вы извлекаете текущую ветвь.
  2. Используйте переменную ветвь - проверить это для получения дополнительной информации: Jenkins Multibranch pipeline: What is the branch name variable?

ответ

1

В вашем Jenkinsfile добавьте имя филиала к кассе с параметром branch на git линии:

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

Некоторые build триггеры задают переменную среды, которая содержит имя ветви (например, Gerrit Trigger Plugin устанавливает GERRIT_BRANCH), что позволит вам установить branch этой переменной окружения вместо жесткого кодирования pe r ветвь.

+0

Благодарим за ответ. Я узнал, что вместо команды 'git' я могу использовать checkout scm'. Он проверяет текущую ветку. –

+0

О, это лучше, чем мой ответ. –

Смежные вопросы