Jenkins Pipeline - Git Plugin 3.1.0 - rawRefSpecs 不起作用



我正在使用带有管道插件和 Git 插件版本 3.1.0 的 Jenkins。根据这张票:https://issues.jenkins-ci.org/browse/JENKINS-40908,此功能是 3.1.0 版本的一部分。

尽管如此,我仍然无法成功设置原始参考规格变量。

这是我的管道配置:

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

我们可以看到,fetch 保留了 refspecs 的默认参数值。

看起来 GitStep 强制分支规范为"*/"+分支,并忽略除分支、凭据 ID 和 url 之外的任何其他参数。

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

那么我怎样才能将 refspec 传递给命令呢?

Git 插件多年来一直支持指定自己的 refspec。 您可以通过代码段生成器在"结帐:常规 SCM> Git>存储库">"高级> Refspec"下找到正确的管道语法。 这将为您提供所需的checkout语法。

git步骤本身当前不支持自定义 refspec,您引用的错误适用于GitSCMSource,如描述中所述,该 用于多分支管道。

如果您使用的是多分支管道,则可以在 Git> 高级> RefSpecs 下的分支源>下找到您正在谈论的新 refspec 选项。

相关内容

  • 没有找到相关文章

最新更新