詹金斯:gitlabCommitStatus不能正常工作

时间:2017-04-04 11:41:31

标签: git jenkins gitlab jenkins-pipeline

我的环境是下一个:

-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中的错误。

感谢所有人!

1 个答案:

答案 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工作正常。