我有一个Jenkins作业,用一堆值吐出一个json文件。具体来说,此文件包含使用Jenkins插件创建的虚拟机的TCP端口号。
我需要从json文件中获取这些端口号,并在ant构建中使用它们的值,我将其称为jenkins作业的下一步。
json文件看起来有点像这样:
{
"vms": [{
"interfaces": [{
"services": [{
"internal_port": 25,
"external_port": 12345,
"id": "smtp"
},
{
"internal_port": 80,
"external_port": 12346,
"id": "http"
}]
}]
}]
}
所以我需要为我的ant脚本设置一个参数,从这个json到$ {http.external.port}和$ {smtp.external.port}属性。
单独的詹金斯任务是可行的吗?我是否必须在同一个蚂蚁脚本中执行此操作?我更喜欢从单独的jenkins步骤开始,因为这个相同的ant脚本用于其他不生成json文件的作业(我从静态.properties文件中获取参数)。
答案 0 :(得分:1)
你想要的是:
不幸的是,这些只会在构建步骤中持续存在,但您需要在下一步中重复使用它们。一种解决方案是将这些值临时存储到文件中,然后在下一个构建步骤(Ant)中读取该文件。 Ant可以轻松地从文件中准备好属性,只要它们是property=value
格式。
您还可以使用EnvInject plugin读取这些相同的变量,并将它们注入到构建的Jenkins环境变量中。这将进一步允许您将这些值作为环境变量引用,而不仅仅是在Ant。
中至于如何解析值的JSON:您需要提供正在运行的操作系统以及您熟悉的脚本语言。