繁体   English   中英

当我使用参数化分支时,Jenkins 无法构建:致命:找不到远程参考 refs/heads/${BUILD_BRANCH}

[英]Jenkins fails to build when I use a parameterised branch: fatal: Couldn't find remote ref refs/heads/${BUILD_BRANCH}

一旦我尝试升级我的 Jenkins 作业以使用分支参数而不是硬编码值,它就不再有效。

字符串参数

尝试了除 BUILD_BRANCH 之外的许多其他名称

在此处输入图像描述 在这里,我尝试了 ${env.BUILD_BRANCH}, refs/heads${BUILD_BRANCH} 并且绝对没有一个工作在此处输入图像描述 当我最初这样做时,我确实检查了轻量级结帐,在阅读了许多具有相同问题的在线答案后,我将其删除。 还是什么都没有..我只是添加了“擦除”命令,看看是否有帮助,但它没有

错误:

 > git rev-list --no-walk 97428a402f3304a21ccc8df435a40468ebf406c1 # timeout=10
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] readTrusted
[Pipeline] End of Pipeline
hudson.plugins.git.GitException: Command "git fetch --tags --progress --prune -- origin +refs/heads/${BUILD_BRANCH}:refs/remotes/origin/${BUILD_BRANCH}" returned status code 128:
stdout: 
stderr: fatal: Couldn't find remote ref refs/heads/${BUILD_BRANCH}
fatal: The remote end hung up unexpectedly

    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2429)

感谢您的阅读,即使您无能为力

您是否在 Pipeline SCM 部分选择了轻量级结账? 取消选中轻量级结账为我解决了这个问题。

似乎您正在混合配置(很难确定仅共享图像片段)。

一方面,您正在定义一个参数 (BUILD_BRANCH) 来指定应该构建哪个分支。

另一方面,假设第二个图像属于项目配置的管道部分,您正在尝试使用该参数来限制应该用于获取 Jenkinsfile 的分支。

第二个分支在不同的工作区(不同的文件夹)中检出,仅用于获取 Jenkinsfile。 即使您对它进行了完整的检查,也不意味着您的工作区中可以使用该分支的代码。

您应该做的是使用管道上的参数并将其提供给结帐阶段。

取消选择 Pipeline 定义的Lightweight checkout选项。 根据其帮助文档-

Also build parameters will not be substituted into SCM configuration in this mode. Only selected SCM plugins support this mode.

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM