😸

Github Actionsの処理結果を見逃さないようにデスクトップ通知をする

2024/08/05に公開

こんにちは。株式会社 Sally エンジニアの @piesukeです。

私たちは、マーダーミステリーを遊べることが出来るアプリ「ウズ」と、マーダーミステリーを制作してウズ上で遊べることが出来るアプリ「ウズスタジオ」を開発しています。
私が最近やって面白かったマーダーミステリーは ヒガンノ饗宴 です。

今回は、Github Actions の処理結果を見逃さないように通知をする方法を紹介します。

背景

コミットをプッシュした後、CI/CD の Github Actions が完了するのを待っている間他の作業をして、気づいたら CI/CD の完了を見逃してしまうこと、ありますよね。

私はコミットをプッシュしてプレビューを確認しようと CI/CD の完了を待っている間に、暇つぶしとして X を眺めて気づいたら 30 分経っていたことがあります。あな恐ろしや...

そうした悲劇が起こらないよう、Github Actions の処理が完了したら通知を飛ばして気づけるようにしました。

準備

使うのは Github CLI です。

brew install gh

デスクトップ通知については、自分は Mac ユーザーなので terminal-notifier を使います。

brew install terminal-notifier

Linux なら notify-send などが使えると思います。

Github CLI の設定

Github CLI では様々な機能が提供されていますが、今回は Github Actions の実行状況を監視するために gh run watch を使います。

gh run watch は、コマンドを実行した時にそのリポジトリで走っている Github Actions のジョブの状況を監視することができるコマンドです。

これを通知と一緒に使うには、以下のようなコマンドを実行します。

gh run watch -i1 | terminal-notifier -title "Github Actions" -message "Finished"

上記コマンドを実行すると、今走っているアクションの一覧が表示されるので、その中で完了通知を飛ばしたいアクションを選択します。

選択したアクションが完了したら、以下のような通知が飛びます。

これで Github Actions の完了を見逃さないようになりますね!

応用

普段は、push と同時に gh run watchを走らせて、CI/CD の完了を待っている間に他の作業をしています。
こんな感じのエイリアスです。

alias gh-w="gh run watch -i1  && terminal-notifier -title "🍏" -message 'run is done!' -sound Crystal"

alias gp-w="git push && sleep 5 && gh-w"

push と同時に gh run watch を走らせると、まだ Github Actions が開始してない状況なので処理中のワークフローを取得することができません。なので sleep を入れています。

まとめ

今回は、Github Actions の完了を見逃さないように通知を飛ばす方法を紹介しました。
特に CI/CD の完了を待っている間についつい X を眺めたり他の作業をしてしまう人に有効です!

GitHubで編集を提案
UZU テックブログ

Discussion