Shell脚本接受“jenkins作业名称”并从命令行触发该作业(作业名称和参数数量不同)

时间:2014-04-01 12:11:14

标签: shell jenkins

您好我写了一个shellcript,接受" jenkins的工作名称"并开始通过命令行触发该构建,在我的Jenkins服务器中,我有不同的作业,其数量和参数名称不同。

$build_name= Jenkins_job_name   ##(which is the only input)
java -jar jenkins-cli.jar -s http://mydomain:8080/ build $build_name -s -p    PARA1=$paravalue

只有在我提供作业所需的参数的确切名称和计数时才会起作用

我想概括一下这个构建触发脚本,该脚本获取特定作业的参数名称,接受它然后触发构建

注意:当我尝试使用不同参数名称的上述脚本时(" KEY1"而不是" PARA1"),我收到的信息如下:

' KEY1'不是有效参数。你的意思是" PARA1"?

1 个答案:

答案 0 :(得分:2)

您可以使用cli上的get-job $build_name来获取作业配置

参数如下:
<parameterDefinitions> <name>PARA1</name>

<name>...</name>

会有多个实例

或者,您可以拨打电话 http://mydomain:8080/job/$build_name/api/json

参数格式为:
"parameterDefinitions":[{..., "name":"PARA1", ...}, ...]

{..., "name":"...", ...},

会有多个实例

解析文件以获取为作业定义的所有参数。 json格式要么是shell,因为它只在一行上。 RegEx可以在括号结束前检测parameterDefinitions的开头并获取以下name值。