【问题标题】:Retrieve all jenkins parameters to iterate in groovy code检索所有 jenkins 参数以在 groovy 代码中进行迭代
【发布时间】:2014-11-19 13:43:10
【问题描述】:

根据this 的回答,我想遍历 jenkins 作业中的所有属性,并在构建步骤中用它们在作业中的值替换。

例如

file = new File("folder/path/myfile.cs")
fileText = file.text;
fileText = fileText.replaceAll("parameter", "parametervalue");
file.write(fileText);

我看到了一个解决这样一个参数的示例:

build.buildVariableResolver.resolve("myparameter")

但我需要

  1. 遍历所有这些
  2. 在构建步骤中执行此操作(从源代码中提取后),因此在当前构建中。

我该怎么做?

【问题讨论】:

    标签: groovy jenkins


    【解决方案1】:

    以下是一个示例 groovy 代码,您可以将其与 scriptler plugin 一起使用,我建议您使用它。此代码可以正确读取任何 Jenkins 作业中设置的环境变量:

    import jenkins.model.Jenkins
    
    def thr = Thread.currentThread()
    def build = thr?.executable
    def env = build.getEnvironment()
    def buildNumber = env.get("BUILD_NUMBER")
    

    如果您想读取构建参数(您有一个参数化构建并需要访问这些变量),您需要使用前面的代码并添加以下内容:

    def bparams = build.getBuildVariables()
    def myBuildParam = bparams.get("MY_BUILD_PARAMETER")
    

    在您阅读它们之后,您可以在 git 克隆之后的构建步骤中将它们写入您的文件。

    【讨论】:

    • BUILD_NUMBER 是可用于任何作业的环境变量。如果使用 groovy scriptler 插件,如何阅读它写在我发布的代码中。您发布的代码只能从构建流程插件中使用。基本上每个插件都有自己的 api 暴露,因此你有不同的语法。
    • 谢谢。我可以更多地表达我的问题。该构建具有构建参数 - 我需要检索它们。它是否被视为构建环境变量?
    • 我正在寻找一种方法来动态迭代所有环境并注入它们
    • 好的,我扩展了答案,所以你现在可以阅读任何你想要的内容:)。要遍历所有这些,您可以只使用 groovy 读取的对象并做您想做的事情(这很简单)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    相关资源
    最近更新 更多