我将 Jenkins 与管道插件和 Git 插件版本 3.1.0 一起使用。根据这张票:https ://issues.jenkins-ci.org/browse/JENKINS-40908 ,此功能是 3.1.0 版本的一部分。
尽管如此,我还是没有成功设置 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
我们可以看到 fetch 保留了 refspecs 的默认参数值。
看起来 GitStep 强制分支规范为“*/”+分支,并忽略除分支、凭据 ID 和 url 之外的任何其他参数。
那我怎么能将 refspec 传递给命令呢?