java - 如何捕获 Jenkins 构建原因?由 GitLab 触发

标签 java jenkins groovy hudson jenkins-groovy

在 Jenkins 文件(groovy 语法)中,使用 currentBuild.getBuildCauses('hudson.model.Cause) 中的 hudson.model.Cause$UserIdCause 获取手动构建操作(如果有)原因$UserIdCause')


hudson.triggers.SCMTrigger.SCMTriggerCause 在 Jenkins CI 中看起来已弃用 code .

    @Deprecated
    public SCMTrigger(String scmpoll_spec, boolean ignorePostCommitHooks) throws ANTLRException {
        super(scmpoll_spec);
        this.ignorePostCommitHooks = ignorePostCommitHooks;
    }

在来自 GitLab 的推送事件或合并事件中,Jenkinsfile 如何读取构建原因?

最佳答案

如果您希望在 Gitlab 触发器上执行阶段:

stage('stage') {
    when {
        triggeredBy "GitLabWebHookCause"
    }
}

要获取 Gitlab 的数据,请使用以下语法:

currentBuild.rawBuild.getCause(com.dabsquared.gitlabjenkins.cause.GitLabWebHookCause).getData()

示例:获取最后一次提交

commit = currentBuild.rawBuild.getCause(com.dabsquared.gitlabjenkins.cause.GitLabWebHookCause).getData().getLastCommit()

GitlabWebHookCause 的文档: https://javadoc.jenkins.io/plugin/gitlab-plugin/com/dabsquared/gitlabjenkins/cause/GitLabWebHookCause.html

关于java - 如何捕获 Jenkins 构建原因?由 GitLab 触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55360677/

相关文章:

java - 为什么 Jenkins 不下载我的最新快照?

Groovy 从 map 中删除空元素

java - 当我有套接字和线程时如何彻底停止tomcat

java - java类设计指南

java - 从输入流中读取实体时出错 - 使用 Jackson

Java:如何使用 HashMap 根据第二列中的条件对一列的所有值求和

jenkins - 错误:Jenkins Groovy脚本中的 “Expected named arguments”并行

jenkins - 是否保证 Jenkins 管道中的所有阶段都将在同一主机上执行?

Grails 将字符串转换为字母大小写

intellij-idea - IntelliJ Idea groovy.lang.GroovyRuntimeException : Conflicting module versions