Сборка Jenkins на основе выбранной ветки из git - PullRequest
0 голосов
/ 10 января 2019

Я создал файл jenkins, в котором будут перечислены ветви из репозитория git. Это будет показано в выборе. Что нужно сделать, это то, что я должен построить только выбранную ветку. Я использовал следующий код, чтобы перечислить ветви и сохранить его в файле branch.txt

stages {
stage('getbranches') {
        steps {
            git credentialsId: 'All', url: 'https://myrepo@bitbucket.org/professional/project.git'
            sh '>branch.txt'
            sh 'git branch -r | awk \'{print $1}\' ORS=\'\\n\' >>branch.txt'

        }
    }
}

на следующем этапе я выбираю ветку с этим кодом

stage('Select a branch') {
        steps{
            script{
            listBranches = readFile 'branch.txt'
            echo "please click on the link here to chose the branch to build"
            BRANCH_NAME = input message: 'Please choose the branch to build ', ok: 'Select',
            parameters: [choice(name: 'BRANCH_NAME', choices: "${listBranches}", description: 'Branch to build?')]

         }
     }
}

Теперь, как мне построить только выбранную ветку.

Я попытался оформить заказ, используя приведенные ниже коды, и просто добавить этап сборки.

stage ('checkout a branch') {
        steps {
         echo "checking out branch ${BRANCH_NAME}"
            git credentialsId: 'All', url: 'https://myrepo@bitbucket.org/professional/project.git'
            sh 'git checkout "${BRANCH_NAME}"'

        }
    }
  1. Будет просто проверять ветку и строить ее, чтобы построить эту ветку в одиночку?
  2. или это создаст основную ветвь, а не выбранную филиал.

Если да, то как я могу построить выбранную ветку в одиночку?

  • Кроме того, каждый раз, когда я запускаю конвейер jenkins, он не должен использовать старые файлы, которые были клонированы во время последней сборки.

1 Ответ

0 голосов
/ 10 января 2019

Не правильно понял вашу проблему, пожалуйста, найдите ниже, что я выяснил для вашего случая.

Я бы сказал, что лучше использовать GIT Web-hooks для реализации вашего случая, так как в web-hooks он вызовет ветвь, в которой вы будете вносить какие-либо изменения (в Jenkins создайте многоотраслевой конвейер, так что он создаст работа для каждого из ваших филиалов)

Пожалуйста, следуйте ниже: -

  1. Как создать многоотраслевой конвейер в jenkins

  2. Как добавить webhooks

В этой только ветке, в которую вы будете вносить изменения, сборка будет запускаться только для этого.

...