web-dev-qa-db-ja.com

Jenkins Pipelineが特定のブランチを選択

私はJenkins Pipelineを持っています。これを選択して、特定のブランチをチェックアウトするためにユーザー入力を要求します。つまり、ブランチ「foo」を作成してコミットした場合、メニューからそのブランチを構築できるようにしたいと考えています。ブランチを作成しているユーザーが何人かいるので、GUIではなく宣言型パイプラインにしたい。以下に示すこの段階で、Jenkinsがgitをポーリングして使用可能なブランチを見つけた後、ユーザー入力でブランチをチェックアウトしたいと思います。これは可能ですか?

stage('Checkout') {
      checkout([$class: 'GitSCM',
                branches: [[name: '*/master']],
                doGenerateSubmoduleConfigurations: false,
                extensions: [[$class: 'CloneOption', noTags: true, reference: '', shallow: true]],
                submoduleCfg: [],
                userRemoteConfigs: [[credentialsId: 'secretkeys', url: '[email protected]:somekindofrepo']]
                ]);
    }
  }

私は現在これを持っていますが、きれいではありません。

pipeline {
    agent any
    stages {
        stage("Checkout") {
            steps {
                    checkout([$class: 'GitSCM',
                        branches: [
                            [name: '**']
                        ],
                        doGenerateSubmoduleConfigurations: false,
                        extensions: [[$class: 'LocalBranch', localBranch: "**"]],
                        submoduleCfg: [],
                        userRemoteConfigs: [
                            [credentialsId: 'repo.notification-sender', url: '[email protected]:repo/notification-sender.git']
                        ]
                    ])
                }
            }
        stage("Branch To Build") {
            steps {
                    script {
                        def gitBranches = sh(returnStdout: true, script: 'git rev-parse --abbrev-ref --all | sed s:Origin/:: | sort -u')
                        env.BRANCH_TO_BUILD = input message: 'Please select a branch', ok: 'Continue',
                            parameters: [choice(name: 'BRANCH_TO_BUILD', choices: gitBranches, description: 'Select the branch to build?')]
                    }
                    git branch: "${env.BRANCH_TO_BUILD}", credentialsId: 'repo.notification-sender', url: '[email protected]:repo/notification-sender.git'
                }
            }
          }
    post {
      always {
        echo 'Cleanup'
        cleanWs()
        }
    }
  }
5
eekfonky

入力を文字列として受け取る代わりに、 https://wiki.jenkins.io/display/JENKINS/Git+Parameter+Plugin とともに「パラメータを使用してビルド」を使用できます。

プラグインを使用することで、GITリポジトリからすべての使用可能なブランチ、タグをフェッチするようにJenkinsに指示できます。

パラメータBRANCH_TO_BUILDを使用してパイプラインのブランチ名を取得し、選択したブランチをチェックアウトします。

4
Samy