【问题标题】:Parametrized remote trigger with multiline string Jenkins使用多行字符串 Jenkins 的参数化远程触发器
【发布时间】:2021-05-27 03:16:45
【问题描述】:

我有一个触发远程工作的 Jenkins 工作。这两个作业都有一个多行字符串作为参数。 我无法将参数传递给远程作业。只有输入字符串的第一行被传递给远程作业。

不能用多行字符串触发远程作业吗?

  def parameters = 'ip_range='
  params.ip_range.readLines().each{
     parameters = parameters + "${it}" + "\n"
  }
  parameters = parameters + "\n"+'remote_branch='+env.BRANCH_NAME

也试过 def 参数 = 'ip_range=' + params.ip_range + "\n"+'remote_branch='+env.BRANCH_NAME

在这两种情况下,只有第一个值作为参数传递给远程作业。

任一方法的詹金斯作业的控制台输出

  • 参数:[ip_range=1.2.4.5/20, 1.56.23.12/32, remote_branch=21.4.0/INSURECI-203156]

编辑:远程触发

                        triggerRemoteJob (
                            abortTriggeredJob: true,
                            enhancedLogging: true,
                            job: "some-remote-url/job/ip-range-test/job/${remoteTriggerBranchName}",
                            parameters: parameters,
                            remoteJenkinsName: 'Openshift',
                            useCrumbCache: true,
                            useJobInfoCache: true,
                            maxConn: 5
                        );

【问题讨论】:

  • 显示触发远程作业的代码
  • @daggett:用远程触发更新问题
  • 你得问插件开发者
  • 我会试试的。现在我在 foreach 中调用远程作业

标签: jenkins groovy


【解决方案1】:

它不会按原样工作,因为参数化远程触发插件使用'\n' 作为参数的分隔符。

解决此问题的一种可能方法是创建一个标记宏,该宏将扩展为换行符。在'\n'上拆分参数后进行令牌宏扩展。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多