在 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/