我的环境是下一个:
-Jenkins 2.46.1
-Gitlab插件1.4.5
-GitLab Community Edition 8.14.3
我配置了一个多分支管道。我尝试过:
pipeline {
agent any
options {
gitLabConnection('MY_GITLAB')
gitlabCommitStatus(name: 'jenkins')
}
triggers {
gitlab(triggerOnPush: true, triggerOnMergeRequest: true, branchFilterType: 'All')
}
stages {
stage("build") {
steps {
gitlabCommitStatus(name: 'build') {
withMaven(
maven: 'maven3', // Maven installation declared in the Jenkins "Global Tool Configuration"
mavenSettingsConfig: 'MY_ID', // Maven settings.xml file defined with the Jenkins Config File Provider Plugin
mavenLocalRepo: '.repository') {
// Run the maven build
sh "mvn clean install"
}
}
}
}
stage("paralelo") {
steps {
parallel (
phase1: { sh "echo phase1" },
phase2: { sh "echo phase2" }
)
}
}
}
}
它没有错误,但我没有在我的Gitlab中看到提交状态。没有来自gitlab的production.log中的错误。
感谢所有人!
答案 0 :(得分:2)
您需要将其包装在gitlabBuilds(build: ["jenkins", "build"]) { }
中。
这将传达即将到来的状态。请注意,该值必须与您在gitlabCommitStatus('..')
中使用的值完全相同。
布局应该是:
checkout scm
gitlabBuilds(builds: ["1.", "2.",..."n."]) {
gitlabCommitSTatus(name: "1.") { ... }
gitlabCommitSTatus(name: "2.") { ... }
...
gitlabCommitSTatus(name: "n.") { ... }
}
当然,只要匹配gitlabBuilds.builds
中的值,您可以选择任何您喜欢的名称。
确保您的gitlabConnection
工作正常。