Launchable Advent Calendar 19日目 - Test notifications
Launchableの各機能の利用方法を紹介する Launchable Advent Calendar 19日目です。
はじめに
今日はCIのテスト結果をSlackに通知できるTest notificationsについて紹介します。(docs)
普段CIの完了をどのように確認していますか?
チャットツールに結果の通知が流れてくるのを待つ。CIのページをリロードする。等ではないでしょうか?
CIが失敗した場合どうやって失敗したテストを確認していますか?テスト結果のログから確認してませんか?
今日紹介するTest notificationはCI完了時に結果と、CIが失敗した場合には失敗したテストも同時に通知できる機能になります。
Test notification
Test notifications機能は現在Slackのみ対応しています。
Slack Appのインストール
まずはSlackのWorkspaceにLaunchableのSlack Appをインストールします。
Web Appの Test Notifications
から遷移します。
表示に従ってアプリのインストールを行います。
インストールに成功するとこのような画面が表示され、LaunchableのSlack Appからメッセージが送られます。
Slack AppとLaunchable Organizationの連携
Slack Appのインストールに成功したらSlack AppとLaunchableのOrganizationの紐付けを行います。
Slackで /launchable link <organization>
コマンドを実行します。実行すると紐付け用のURLが発行されます。Link
ボタンから紐付けを行います。
紐付けが完了するとこのような画面が表示されます。
これで紐付けは完了です。
通知の設定
紐付けが完了したら通知の設定をします。通知の条件にはCI環境で取得可能な環境変数が利用でき、Key=Value
形式で設定します。
設定したKey/Valueと一致するKey/Valueが設定されているときのみ通知が行われます。
Slackからこのように設定します。
/launchable subscribe <YOUR_LAUNCHABLE_WORKSPACE> Key=Value
GitHubのSlack Appと同様にLaunchable Slack Appとの個別メッセージで設定すると個別に通知が行われ、共有のチャンネルで設定すると共有チャンネルに通知が飛びます。
GitHub Actions での例
Konboi/launchable-java-exampleで使用しているLaunchableのWorkspaceにGitHub Actionsのトリガーが自分だった場合に個別に通知を受け取る設定を例として行ってみます。
GitHub Actionsでは GITHUB_ACTOR
という環境変数で起因となったアカウントのユーザーIDを取得で来ます。(ref: docs)
/launchable subscribe advent-calendar-2022 GITHUB_ACTOR=Konboi
成功するとこのようなメッセージが表示されます。Web Appからでも確認できます。
では、Day 6の設定を元に通知を確認してみましょう。
launchable record tests
の設定が完了していれば追加で設定するものはありません。
CIが成功するとこのようなメッセーがSlackに通知されます。
試しにテストを失敗させてみます。
public class MulTest {
@Test
public void calc() {
- assertThat(new Mul().calc(8,2), is(16));
+ assertThat(new Mul().calc(8,2), is(10));
}
}
失敗するとこのように通知されます。
最大5件までどのテストが失敗したかをメッセージから確認で来ます。
View tests result
ボタンをクリックするとWeb Appの対象のテストセッションページに遷移し、より詳細に結果を確認できます。
さいごに
本日はテスト結果をSlackで受け取ることができるTest notificationsについて紹介しました。
明日はUnhealthy Testについて紹介します。
Discussion