我有几个 Jenkins 管道,所有管道都从 Bitbucket 导入共享库以实现某些实用方法,并且我想将构建状态通知发送到每个项目自己的 Bitbucket 存储库。
我安装了Bitbucket 构建状态通知器 https://plugins.jenkins.io/bitbucket-build-status-notifier插件,但我遇到了一个奇怪的行为:当bitbucketStatusNotify
在我的管道中被调用,会发生这种情况:
Sending build status INPROGRESS for commit <sha> to BitBucket is done!
那没问题,但是<sha>
是共享库上最后一次提交的提交 ID,而不是正在构建的实际项目上的提交 ID,因此构建状态通知实际上被发送到共享库存储库,而不是正确的存储库。
我认为这是在 Jenkins 配置中将库设置为“隐式加载”的问题,所以我尝试使用显式加载它@Library
在我的詹金斯文件中,但发生了相同的行为。
由于构建状态通知程序插件无法指定要发送通知的提交 ID,因此我是否缺少某些内容来让它将通知发送到正确的提交 ID?
以下是 Bitbucket 云的示例:
首先在Jenkins上安装HTTP Request插件
然后使用以下管道代码:
void notifyBitbucket(state)
{
def object_data = "{\"state\": \"${state}\",\"key\": \"${env.JOB_NAME} ${currentBuild.displayName}\",\"name\": \"${env.JOB_NAME} ${currentBuild.displayName}\",\"url\": \"https://jenkins/job/${env.JOB_NAME}/${currentBuild.number}/\",\"description\": \"\"}"
def response = httpRequest authentication: '<credential ID>', acceptType: 'APPLICATION_JSON', contentType: 'APPLICATION_JSON', httpMode: 'POST', requestBody: object_data, url: "https://api.bitbucket.org/2.0/repositories/<user name>/<repo>/commit/<commit id>/statuses/build"
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)