1

Jenkinsfile を作成し、リポジトリをチェックアウトするメソッドを追加しました。

 def checkout(branch){
    sshagent (credentials: ['ssh-jenkins-default']) {
        withEnv(["PATH+MAVEN=${tool 'Maven 3.3'}/bin","connectionUrl=scm:git:${SCM_URL}", "MAVEN_OPTS=-Duser.home=${WORKSPACE}"]) {
            sh "mvn -B scm:checkout -DconnectionUrl=${env.connectionUrl} -DcheckoutDirectory=target/checkout -DscmVersion=${branch} -DscmVersionType=branch"
        }
    }
}

次に、「 checkout: General SCM」パイプライン ステップを使用するステージを作成しました。

if (BRANCH_NAME ==~ /someregex}/){
    stage name: 'DEPLOY' , concurrency: 1
    node {
        ws("${WORKSPACE}"){
            checkout poll: false, scm: [$class: 'GitSCM', branches: [[name: '${BRANCH_NAME}']],
                doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'WipeWorkspace']],
                    submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'ssh-jenkins-default', url: '${SCM_URL}']]]
        deploy(BRANCH_NAME)
    }
}

私のコンソール出力の結果は次のとおりです。

mvn -B scm:checkout -DconnectionUrl=(難読化) -DcheckoutDirectory=ターゲット/チェックアウト - DscmVersion=[poll:false, scm:[:GitSCM, branchs:[[name:(obfuscated)]], doGenerateSubmoduleConfigurations:false, extensions: [[:WipeWorkspace]]、submoduleCfg:[]、userRemoteConfigs:[[credentialsId:(obfuscated)、url:]]]] -DscmVersionType=branch

そのため、パイプライン ステップ「チェックアウト」のマッピングがパラメータとしてカスタム チェックアウト メソッドに渡され、scmVersion プロパティに割り当てられたようです。よくわかりませんが、なぜですか?チェックアウト メソッドの名前を変更せずに、パイプライン チェックアウト ステップがチェックアウト メソッドを呼び出さないようにする方法はありますか?

4

2 に答える 2

1

checkout同じ名前のメソッドで組み込みステップを誤って隠したと思います。別のメソッド名を使用するか、 を使用steps.checkoutして組み込みステップを明確にしてください。

于 2016-06-06T12:16:00.053 に答える