如何捕获jenkins构建原因?由GitLab引发

问题描述 投票:1回答:1

在Jenkins文件(groovy语法)中,在hudson.model.Cause$UserIdCause中使用currentBuild.getBuildCauses('hudson.model.Cause$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如何读取构建原因?

java jenkins groovy hudson jenkins-groovy
1个回答
0
投票

如果你想在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

© www.soinside.com 2019 - 2024. All rights reserved.