詹金斯:确定触发类型

时间:2013-10-01 08:21:44

标签: jenkins jenkins-plugins jenkins-scriptler

有没有办法可以在执行期间识别当前构建的触发器。我想要的是确定触发器是SCM更改,cron触发器还是用户触发器。我为作业定义了多个触发器,并希望将触发器类型用作shell执行脚本中的参数。

4 个答案:

答案 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)

在http:// s://(您的jenkins服务器)/ jenkins / job /(职位名称)/(职位编号)的“构建工件”和“更改”部分下(如果您有它们),您应该会看到以下图标:An orange diamond with gears。旁边的文本应说明导致构建的原因。