Atlassian Bamboo
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
GitLabのプロジェクトに変更をプッシュすると、Atlassian Bambooでビルドを自動的にトリガーできます。
Bambooは、Webhookとコミットデータを受け入れる際に、従来のビルドシステムと同じ機能を提供しません。GitLabでインテグレーションを設定する前に、Bambooのビルドプランを設定する必要があります。
Bambooを設定する
- Bambooで、ビルドプランに移動し、アクション > Configure plan(プランを設定)を選択します。
- Triggers(トリガー)タブを選択します。
- Add trigger(トリガーの追加)を選択します。
GitLab triggerのような説明を入力します。- Repository triggers the build when changes are committed(変更がコミットされたときにリポジトリがビルドをトリガーする)を選択します。
- 1つ以上のリポジトリのチェックボックスを選択します。
- Trigger IP addresses(トリガーIPアドレス)にGitLabのIPアドレスを入力します。これらのIPアドレスは、Bambooのビルドをトリガーすることが許可されています。
- トリガーを保存します。
- 左側のペインで、ビルドステージを選択します。複数のビルドステージがある場合は、Gitチェックアウトタスクを含む最後のステージを選択します。
- その他タブを選択します。
- Pattern Match Labeling(パターン一致のラベル付け)で、ラベルに
${bamboo.repository.revision.number}を入力します。 - 保存を選択します。
Bambooは、GitLabからのトリガーを受け入れる準備ができました。次に、GitLabでBambooインテグレーションを設定します。
GitLabを設定する
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 設定 > インテグレーションを選択します。
- Atlassian Bambooを選択します。
- 有効チェックボックスが選択されていることを確認します。
- BambooサーバーのベースURLを入力します。たとえば
https://bamboo.example.comなどです。 - オプション。SSLの検証を有効にするを無効にするには、SSL証明書検証を有効にするチェックボックスをオフにします。
- Bambooのビルドプランからbuild keyを入力します。
- 必要に応じて、ビルドプランをトリガーするアクセス権を持つBambooユーザーのユーザー名とキーを入力します。認証が不要な場合は、これらのフィールドを空白のままにします。
- オプション。テスト設定を選択します。
- 変更を保存を選択します。
Bambooビルドプランのビルドキーを識別する
ビルドキーは、通常、プロジェクトキーとプランキーから作成される一意の識別子です。ビルドキーは、すべて大文字で短く、ダッシュ(-)で区切られています(例: PROJ-PLAN)。
Bambooでプランを表示すると、ビルドキーがブラウザのURLに含まれています。たとえばhttps://bamboo.example.com/browse/PROJ-PLANなどです。
GitLabでBambooのビルドステータスを更新する
commit status APIとBambooビルド変数を使用するスクリプトを使用して、次の操作を実行できます:
- ビルドステータスでコミットを更新します。
- BambooビルドプランURLをコミットの
target_urlとして追加します。
例:
:api権限を持つGitLabでアクセストークンを作成します。トークンをBambooの
$GITLAB_TOKEN変数として保存します。次のスクリプトを最後のタスクとしてBambooプランのジョブに追加します:
#!/bin/bash # Script to update CI status on GitLab. # Add this script as final inline script task in a Bamboo job. # # General documentation: https://docs.gitlab.com/ee/user/project/integrations/bamboo.html # Fix inspired from https://gitlab.com/gitlab-org/gitlab/-/issues/34744 # Stop at first error set -e # Access token. Set this as a CI variable in Bamboo. #GITLAB_TOKEN= # Status cistatus="failed" if [ "${bamboo_buildFailed}" = "false" ]; then cistatus="success" fi repo_url="${bamboo_planRepository_repositoryUrl}" # Check if we use SSH or HTTPS protocol=${repo_url::4} if [ "$protocol" == "git@" ]; then repo=${repo_url:${#protocol}}; gitlab_url=${repo%%:*}; else protocol="https://" repo=${repo_url:${#protocol}}; gitlab_url=${repo%%/*}; fi start=$((${#gitlab_url} + 1)) # +1 for the / (https) or : (ssh) end=$((${#repo} - $start -4)) # -4 for the .git repo=${repo:$start:$end} repo=$(echo "$repo" | sed "s/\//%2F/g") # Send request url="https://${gitlab_url}/api/v4/projects/${repo}/statuses/${bamboo_planRepository_revision}?state=${cistatus}&target_url=${bamboo_buildResultsUrl}" echo "Sending request to $url" curl --fail --request POST --header "PRIVATE-TOKEN: $GITLAB_TOKEN" "$url"
トラブルシューティング
ビルドがトリガーされない
ビルドがトリガーされない場合は、Trigger IP addresses(トリガーIPアドレス)のBambooに正しいGitLab IPアドレスを入力したことを確認してください。また、インテグレーションWebhookログでリクエストの失敗を確認してください。
GitLab UIでは高度なAtlassian Bamboo機能を利用できません
高度なAtlassian Bamboo機能は、GitLabと互換性がありません。これらの機能には、GitLab UIからビルドログを監視する機能が含まれますが、これらに限定されません。