【问题标题】:how to pass project parameter as branch name to build in Jenkins如何将项目参数作为分支名称传递以在 Jenkins 中构建
【发布时间】:2020-06-18 15:41:34
【问题描述】:

我想知道有什么方法可以将项目参数的值作为构建的 Git 分支传递。

以下是我想要做的:

  1. 使用构建参数创建 Jenkins 管道项目:

  1. 然后我尝试使用项目参数将其传递(要构建的分支)

但是,branch_name 变量不是从项目参数中解析出来的。

我可以为每个构建手动更改分支名称,但这远非理想。

欣赏任何想法?

【问题讨论】:

标签: jenkins jenkins-pipeline


【解决方案1】:

此问题已多次报告。如果您禁用“轻量级结帐”,这将起作用。显然,如果您使用轻量级结帐,则代码路径会非常不同,而且显然还没有解决。

JENKINS-28447

【讨论】:

  • 我禁用了 Lightweitht Checkout (LC),但显然我不确定取消选中此选项的后果。
  • 我尝试将参数命名为“Branch Name”并将其作为 ${'Branch Name'} 传递给“Branches to build”。这次它不起作用。似乎参数名称遵循 Java 命名约定。但是,在 Jenkins 文件中,我们可以使用以下语法引用这个参数化项目:${env.'Branch Name'}@Rob Hales
  • 轻量级结账尝试去 SCM 获取您的 Jenkinsfile,而无需先进行完整结账。当您在没有 LWCO 的情况下执行管道时,您会注意到控制台输出中有 2 个签出。第一个是到不同的工作区,只是为了获取 Jenkinsfile。因此,假设您可以多花几秒钟的时间和多一点的磁盘空间,这应该不会影响您。
  • 如果将变量设置为 Jenkinsfile 中的参数,有没有办法做到这一点?例如parameters {string(name: 'BRANCH_SPECIFIER', defaultValue: 'develop', description: 'This is the branch to build')}
  • 在这种情况下,管道将使用哪个jenkinsfile?第一次结帐或第二次结帐时存在的那个?
【解决方案2】:

你可以使用git参数插件...

然后在参数化中选择 Git Paramerter ..给出任何名称,例如分支 选择参数类型为“分支”并为分支设置默认值。 然后在 Branches 中构建,放入 ${BRANCH}。 以参数为分支名称构建作业...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    • 2012-10-27
    • 1970-01-01
    相关资源
    最近更新 更多