Jenkins Groovy:触发构建的原因

时间:2015-02-16 15:44:54

标签: groovy jenkins jenkins-scriptler

我正在考虑在Jenkins中使用Groovy脚本进行构建作业,因为我有一些条件可以检查是否需要访问Jenkins API。

是否有可能从Groovy脚本中找出触发构建的人或内容? SCM更改,另一个项目或用户。我刚刚开始阅读一些关于Groovy和Jenkins API的内容。

我想检查以下条件并进行相应的构建。一些伪代码:

def buildTrigger JenkinsAPI.thisBuild.Trigger
if (buildTrigger == scm) {
   execute build_with_automake
   def new_version = check_git_and_look_up_tag_for_version
   if (new_version) {
      execute git tag new_release_candidate
      publish release_candidate
   }
} else if (buildTrigger == "Build other projects") {
  execute build_with_automake
}

项目应该建立在每个SCM变更的基础上,但只有标记和发布,如果版本已经增加。它还应该在另一个项目触发构建时构建。

1 个答案:

答案 0 :(得分:2)

我有类似的东西 - 我想让触发构建的用户,这是我的代码:

for (cause in bld.getCauses()) {
    if (cause instanceof Cause.UserIdCause) {
        return cause.getUserName()
    }
}

(bld是Run的子类型)

因此,您可以了解构建的原因,并检查其类型。

在原因javadoc http://javadoc.jenkins-ci.org/hudson/model/Cause.html

中查看不同的类型