我可以在手动启动时将构建状态从Jenkins发送到Gitlab吗?

oxalkeyp  于 2023-05-22  发布在  Jenkins
关注(0)|答案(1)|浏览(166)

我不想通过Gitlab触发器发送构建状态,而是通过手动启动作业。我尝试了标准配置,它适用于Gitlab触发作业的情况,但是如果我手动启动作业并指定分支,我可以实现这一点吗?在Gitlab插件文档中未找到有关此用例的任何信息。这可能吗

s71maibg

s71maibg1#

我在Bitbucket插件上遇到了类似的问题。我通过在管道中直接使用curl设置buildstatus而不是使用插件来解决这个问题。
你也可以在jenkins管道中使用curl通过gitlab rest API发布buildstatus。在第一阶段设置状态为运行,在post部分设置成功或失败。
链接到“设置提交状态”
例如:

pipeline {
agent any
environment {
    GITLAB_TOKEN=credentials('your_access_token')
}
stages {
    stage('Set Gitlab Buildstatus: running')
    {
        steps {
            sh 'curl --request POST --header "PRIVATE-TOKEN: $GITLAB_TOKEN" "https://gitlab.example.com/api/v4/projects/17/statuses/18f3e63d05582537db6d183d9d557be09e1f90c8?state=running"'
        }
    }
    stage('your stages')
    {
        echo "your stage"
    }
}
post {
    success {
        sh 'curl --request POST --header "PRIVATE-TOKEN: $GITLAB_TOKEN" "https://gitlab.example.com/api/v4/projects/17/statuses/18f3e63d05582537db6d183d9d557be09e1f90c8?state=success"'
    }
    unsuccessful {
        sh 'curl --request POST --header "PRIVATE-TOKEN: $GITLAB_TOKEN" "https://gitlab.example.com/api/v4/projects/17/statuses/18f3e63d05582537db6d183d9d557be09e1f90c8?state=failed"'
    }
}

}

相关问题