はじめに
こんにちは。
Bitriseを用いてCI/CDを作成していると、外部サービスのイベントをトリガーにビルドを実行したり、Slackに通知を送ったり外部サービスとの連携をしたくなると思います。
以前BitriseとGitHub Enterprise(GHE)を連携させようとした際に少し手間取ったので、今回は備忘録として記事にまとめます。
この記事では主に以下について説明します
- GitHub Enterpriseのイベントをトリガーにしたビルド実行方法
- Slackへの通知設定方法
1. GHEのイベントをトリガーにしたビルド実行
Bitriseのビルドトリガーについてはこちらにまとめられているのですが、Supported trigger conditionsにGHEが含まれていません。
そのためGHEとの連携は、通常のGitHubと少し設定方法が異なります。
設定手順
-
Bitriseの「Workflow」→「Triggers」からトリガーを設定
-
Bitriseのプロジェクト設定を開く
-
GHEのリポジトリの設定ページを開く(リポジトリのホームページから「Settings」をクリック)
-
サイドメニューから「Hooks」を選択
-
「Add webhook」ボタンをクリック
-
以下の情報を入力
-
「Add webhook」をクリックして保存
Personal Access Token (PAT)を使用してGHEとBitriseを連携している場合、PATにはadmin:repo_hook
の権限が必要です。
権限が不足していると、Webhookの設定ができません。
これで設定完了です。GHE上でイベントが発生すると、BitriseにWebhookが送信され、ビルドが開始されます。
2. Slackに通知を送る
Bitriseのビルド結果をSlackに通知する設定方法です。1
設定手順
- Slackのワークスペースの管理ページを開く
- アプリを検索し、「カスタムインテグレーション」→「Incoming Webhook」を選択
- 「Slackに追加」をクリックし、通知を送信したいSlackチャンネルを選択
- Webhook URLが生成されるのでコピー
- Bitriseのワークフローエディタを開き、通知を送りたいワークフローを選択
- 「+ Add Step」をクリックし、「Send a Slack message」ステップを検索して追加
- 追加したステップの設定を開き、以下の設定を行う:
Webhook URLはプロジェクトの「Secrets」に保存し、環境変数として参照することをお勧めします。
例:$SLACK_WEBHOOK_URL
として保存し、ステップの設定でこの環境変数を参照する
これで設定完了です。ワークフローが実行されると、指定したSlackチャンネルに通知が送信されます。
うまくいかない時は
連携がうまくいかない場合は、以下を確認してみてください
- GHEとの連携:Personal Access Tokenの権限が適切か
- Slack通知:Webhook URLが正しく設定されているか
- 全般:Bitriseのログでエラーメッセージを確認
参考文献
-
この手順自体はGHEに特化した方法ではないのですが、BitriseとGHEリポジトリを連携した際、同時に行ったため参考までに記載します。 ↩