2017-03-19 1 views
0

私はJenkinsをPipeline PluginとGit Plugin 3.1.0で使用しています。 このチケットによれば:https://issues.jenkins-ci.org/browse/JENKINS-40908、この機能は3.1.0バージョンの一部です。Jenkin Pipeline - Git Plugin 3.1.0 - rawRefSpecsが動作しない

それにもかかわらず、私はrawRefSpecs変数の設定に失敗しました。ここで

は私のパイプの構成です:私は計画を実行したときに

git url: 'ssh://foo/bar.git', 
    rawRefSpecs: '+refs/changes/*:refs/changes/*', 
    branch: 'bar', 
    ... 

、ここでは出力されます:

> /usr/bin/git rev-parse --is-inside-work-tree # timeout=10 
Fetching changes from the remote Git repository 
> /usr/bin/git config remote.origin.url ssh://foo/bar.git # timeout=10 
Fetching upstream changes from ssh://foo/bar.git 
> /usr/bin/git --version # timeout=10 
using GIT_SSH to set credentials 
> /usr/bin/git fetch --tags --progress ssh://foo/bar.git +refs/heads/*:refs/remotes/origin/* 
> /usr/bin/git rev-parse refs/remotes/origin/bar^{commit} # timeout=10 
> /usr/bin/git rev-parse refs/remotes/origin/origin/bar^{commit} # timeout=10 
> /usr/bin/git rev-parse origin/bar^{commit} # timeout=10 

私たちは、フェッチがrefspecsのデフォルトパラメータ値を保持していることがわかります。

GitStepはbranchspecを "* /" +ブランチに強制し、ブランチ、credentialsId、url以外のパラメータは無視します。

https://github.com/jenkinsci/git-plugin/blob/f6ace83fe36740a1ab35612d3b4c5b400647f6ea/src/main/java/jenkins/plugins/git/GitStep.java

どのように私は、コマンドにrefspec渡すだろうか?

答えて

1

Gitプラグインは、独自のrefspecを長年指定することをサポートしています。 Checkout:General SCM> Git> Repositories> Advanced> RefspecのSnippet Generatorから正しいパイプライン構文を見つけることができます。これにより、必要な構文checkoutが得られます。

gitステップ自体は現在カスタムrefspecsをサポートしていません。説明したバグはマルチバンドパイプラインに使用されているGitSCMSourceに適用されます。

マルチブランチパイプラインを使用している場合、新たに参照するrefspecオプションは、[ブランチソース]> [Git]> [詳細]> [RefSpecs]にあります。

関連する問題