ビルド システムを Bitbucket Cloud と連携する

ビルド システムやベンダーが Bitbucket Cloud と既に連携している可能性があります。連携済みの場合は、次の図のように、ビルドをトリガーする各コミットでビルドのステータスを確認できます。

ビルドのステータスが表示されない場合、ビルド ツールでスクリプトを実行できるのであれば、ビルドを独自に連携できます。連携するには、Bitbucket でコミットを更新するビルドの最後の手順の後にスクリプトを追加します。

以下の Python スクリプトは、最後のビルド ステップに追加する処理の例を提供します。このスクリプトは、ツールの更新が環境変数に基づくのか、スクリプト内で手動で入力できるかに応じて、次のフィールドが含まれます

フィールド 更新方法 説明
鍵 (キー) ビルド ビルドのステータスを同じコミットに関連付けられたほかのステータスと区別するキー。スクリプトでは、例として BUILD_ID を使用します。
状態 ビルド、またはスクリプト内で手動

コミットのステータスを示します。スクリプトはビルドの後に実行されるため、スタータスは SUCCESSFUL または FAILED のいずれかとなります。

ビルド システムに応じて、ステータスを提供する環境変数を使用するか、ビルドの出力内容に応じて (既に含まれるステータスを使用して) 実行される 2 つの個別スクリプトを作成することができます。

名前 ビルド ビルドの名前。スクリプトでは、例として JOB_NAME を使用します。
URL ビルド

ビルドの詳細が記載されたページへの URL。スクリプトでは、例として BUILD_URL を使用します。

説明 ビルド、またはスクリプト内で手動 ビルドの説明。お使いのビルド システムに応じて、説明を提供するための環境変数を使用するか、実行前にスクリプトに説明を追加できます。スクリプトは、例として "The build passed." を使用します。
所有者 スクリプト内で手動

リポジトリ オーナーのアカウント。スクリプトでは、例として emmap1 を使用します。

api_url の詳細については、「ステータス/ビルドのリソース」を参照してください。

repo_slug

スクリプト内で手動

リポジトリ名。スクリプトでは、例として MyRepo を使用します。

api_url の詳細については、「ステータス/ビルドのリソース」を参照してください。

revision ビルド

コミットの SHA1 値とビルドのステータス。スクリプトでは、例として GIT_COMMIT を使用します。

api_url の詳細については、「ステータス/ビルドのリソース」を参照してください。

auth スクリプト内で手動 認証情報。ユーザー名またはパスワードを入力できます。リポジトリがチームの一部である場合、ユーザー名とパスワードの組み合わせ、またはチーム名と API キーを入力できます。スクリプトでは、例として auth_user および auth_password を使用します。
ビルドの最後のスクリプトの例
#!/usr/bin/env python

import os
import requests

# CI サーバーが提供した環境変数、名前、
# URL パラメータ、コミットのハッシュ値を使用します(以降の値は
# Jenkinsが使用します)
data = {
    'key': os.getenv('BUILD_ID'),
    'state': 'SUCCESSFUL',  # or 'FAILED' for a script that runs when the build fails
    'name': os.getenv('JOB_NAME'),
    'url': os.getenv('BUILD_URL'),
    'description': 'The build passed.'
}

# コミット ステータスが投稿される API エンドポイントと
# URL を構築します(リポジトリの適切なオーナーとスラグを指定)
api_url = ('https://api.bitbucket.org/2.0/repositories/'
'%(owner)s/%(repo_slug)s/commit/%(revision)s/statuses/build'
           % {'owner': 'emmap1',
              'repo_slug': 'MyRepo',
              'revision': os.getenv('GIT_COMMIT')})

# Bitbucket にステータスを投稿します。(Basic 認証用の資格情報をここに含めます。
# また、チーム名と API キーを使用することもできます)
requests.post(api_url,auth=('auth_user', 'auth_password'), json=data)
最終更新日: 2015 年 12 月 1 日

この翻訳に満足しましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.