簡體   English   中英

Jenkins 構建:通知 Bitbucket 雲

[英]Jenkins build: notify Bitbucket cloud

我正在使用 Jenkins 2.346.2

存儲庫位於 bitbucket.org(雲,不是本地服務器)上。

我希望將構建狀態發送到 bitbucket 並顯示為 PR 構建狀態。

我正在嘗試插件: https://plugins.jenkins.io/bitbucket-build-status-notifier/

配置是(多分支管道項目):


def notifyBitbucket(String state) {
    notifyBitbucket(
            commitSha1: 'a0e5012be0e8e89d122cc773a964c0en3a1a656b2',
            credentialsId: 'jenkins_bitbucket_ssh',
            disableInprogressNotification: false,
            considerUnstableAsSuccess: true,
            ignoreUnverifiedSSLPeer: true,
            buildStatus: state,
            buildName: 'Performance Testing',
            buildUrl: 'https://bitbucket.org',
            includeBuildNumberInKey: false,
            prependParentProjectKey: false,
            projectKey: '',
            stashServerBaseUrl: 'https://bitbucket.org')

}

但我得到的是返回的 bitbucket 頁面顯示“找不到資源”。 目前,我可以用來連接到 bitbucket 的唯一憑據是 SSH 密鑰對。 他們可以正常提取代碼。 我也在嘗試將此密鑰用於通知插件。 這是錯的嗎?

誰能讓我知道在這種情況下如何指定項目的路徑,好嗎?

您可以考慮的一種選擇是使用 Bitbucket API,這樣就不需要外部插件了。 您需要調用的端點是:

${BITBUCKET_API_HEAD}/commit/${env.COMMIT_HASH}/statuses/build

更多關於這在文檔中。 以下是我的做法:

httpRequest([
        acceptType        : 'APPLICATION_JSON',
        authentication    : '<credentials>',
        contentType       : 'APPLICATION_JSON',
        httpMode          : 'POST',
        requestBody       : '''{
            "key":"<unique-key>",
            "name":"PR-Branch-Build",
            "url":"<path-to-jenkins-build>/''' + env.BUILD_NUMBER + '''/pipeline",
            "description":"Build status: '''+ BUILD_STATUS +'''",
            "state":"'''+ BUILD_STATUS +'''"
        }''',
        responseHandle    : 'NONE',
        url               : "${BITBUCKET_API_HEAD}/commit/${env.COMMIT_HASH}/statuses/build",
        validResponseCodes: '200,201'
    ])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM