使用来自SCM的轻量级管道检出,参数为ref

时间:2018-01-19 07:09:27

标签: jenkins-pipeline

我正在尝试运行一个位于非常大的git仓库中的管道脚本。 我可以使用" Lightweight Checkout"来自SCM""管道脚本来自SCM" (使用Bitbucket)并且工作正常。

但是 - 作业需要有一个参数BRANCH来指定从哪个分支获取它。

当我使用" $ {BRANCH}"在" Branch Specifier"中,我得到了这个:

hudson.plugins.git.GitException: Command "git fetch --tags --progress origin +refs/heads/${BRANCH}:refs/remotes/origin/${BRANCH} --prune" returned status code 128: stdout: stderr: fatal: Couldn't find remote ref refs/heads/${BRANCH}

关于如何为作为参数传递的分支执行管道脚本的轻量级检出的任何想法?

4 个答案:

答案 0 :(得分:0)

它清楚地表明变量BRANCH没有被插值(如果我能够正确地说BRANCH确实是你的分支的名称并且你已经在某处定义了它)。在给出参数或双精度时,只需检查是否使用单引号。我认为这是前一种情况。在单引号的情况下,字符串不会被插值,并且它试图在命令行中找到变量,即环境变量。改变

'${BRANCH}'

"${BRANCH}"

答案 1 :(得分:0)

answer帮助了我,虽然我仍然不得不加密它实际上适用于我。这个剪断更清晰:

                checkout([$class : 'GitSCM',
                branches : [[name : '*/' + BRANCH]],
                doGenerateSubmoduleConfigurations : false,
                extensions : [],
                gitTool : 'Default',
                submoduleCfg : [],
                userRemoteConfigs : [[
                    credentialsId : 'a1b1-e12f3-fake-key-f0f00f0e0000',
                    url : 'https://git.example.com/scm/foo/bar.git']]])

答案 2 :(得分:0)

我相信您是在管道配置中引用此字段:

enter image description here

这似乎是一个已知问题:

答案 3 :(得分:0)

这是一个已知的错误。

请参阅https://issues.jenkins-ci.org/browse/JENKINS-27508

您可以取消选择[轻型结帐]以启用环境,我已经尝试成功