有没有办法可以在执行期间识别当前构建的触发器。我想要确定触发器是 SCM 更改、cron 触发器还是用户触发器。我为一个作业定义了多个触发器,并希望在 shell 执行脚本中使用触发器类型作为参数。
问问题
4268 次
4 回答
2
您可以使用 Rest API 获取此信息;这是一个例子:
http://jenkins.yourdomain.com/job/job_name/build_number/api/json?tree=actions[causes[shortDescription]]&pretty=true
返回
{
"actions" : [
{
"causes" : [
{
"shortDescription" : "Started by an SCM change"
}
]
},
{
},
{
},
{
},
{
},
{
},
{
}
]
}
于 2013-10-01T17:49:56.077 回答
1
一种解决方案是使用运行条件插件,它可以根据触发器类型运行不同的 shell 脚本。它不是完美的解决方案,但它会做你想做的事。
于 2014-06-30T14:25:17.777 回答
0
您也可以使用 groovy 脚本来完成。查看我对Jenkins Groovy 的回答:是什么触发了构建 ,您可以获得 Cause 对象,然后检查它是哪个子类型的原因 http://javadoc.jenkins-ci.org/hudson/model/Cause.html
于 2015-11-25T12:34:07.007 回答