有没有办法可以在执行期间识别当前构建的触发器。我想要的是确定触发器是SCM更改,cron触发器还是用户触发器。我为作业定义了多个触发器,并希望将触发器类型用作shell执行脚本中的参数。
答案 0 :(得分:1)
您可以使用Rest API获取此信息;这是一个例子:
http://jenkins.yourdomain.com/job/job_name/build_number/api/json?tree=actions [导致[SHORTDESCRIPTION]&安培;漂亮=真
返回
{
"actions" : [
{
"causes" : [
{
"shortDescription" : "Started by an SCM change"
}
]
},
{
},
{
},
{
},
{
},
{
},
{
}
]
}
答案 1 :(得分:0)
一种解决方案是使用Run Condition Plugin,它可以根据触发器类型运行不同的shell脚本。它不是完美的解决方案,但它会做你想要的。
答案 2 :(得分:0)
你也可以用groovy脚本来做。看看我对Jenkins Groovy: What triggered the build的回答 你可以得到Cause对象,然后检查它是什么原因的子类型 http://javadoc.jenkins-ci.org/hudson/model/Cause.html
答案 3 :(得分:0)