如何阅读存档的JSON文件&将参数传递给下一个作业?

时间:2016-09-06 04:30:13

标签: shell jenkins groovy

我可以通过另一个项目的复制关系图来获取存档文件。 此归档文件采用JSON格式。我需要从这个JSON文件中提取一个值,并将此参数传递给下一个构建。我已经使用python脚本来执行此操作(Execute Shell),但该变量的范围在Execute Shell外部不可见。还有其他方法,我该怎么做?

1 个答案:

答案 0 :(得分:0)

将参数传递给下一个版本的一种方法是在Groovy postbuild步骤中使用Jenkins API。

例如,这是一个快速脚本:

  1. 读入一个名为“myJsonFile.json”的存档json文件(假设它位于工作区的根目录中)
  2. 启动一个名为“myDownstreamJob”的作业,传递“myJsonParameter”(在“myJsonFile.json”文件中找到)的值,以获取下游作业中名为“Param1”的构建参数。
  3. // Parse the json file
    def json = new groovy.json.JsonSlurper().parse(new File(manager.build.artifactsDir.path + "\\myJsonFile.json"))
    
    // Get the target json value
    def myValue = json.myJsonParameter
    
    // Kick off downstream job passing in json value as Param1
    manager.hudson.getItem("myDownstreamJob").scheduleBuild(5, new hudson.model.Cause.UpstreamCause(manager.build), new hudson.model.ParametersAction([ new hudson.model.StringParameterValue( "Param1", myValue ) ]));