[Github Actions] test後にsuccess or failureで実行するコマンドを変える

背景

https://newsdict.io でgithub actionsを使ったテスト後にslackにテスト結果を通知させたい

実装方法

  • stepsの最後にrtCamp/action-slack-notifyを入れて、ビルドが終わったら通知を実行されるようにする
  • actionsのif conditionalを使って条件分岐させる
  • forkしたレポジトリからのPullRequest時には、Github secretが使えないのでmasterにpushしたときのみ、slack通知を発火するようにしている。

完成コード

https://github.com/newsdict/newsdict.io/blob/ee13b371e0d6af6df955b612531f51562fd42e27/.github/workflows/UnitTest.yml

キーポイント

  • slack notifyの個所が2つある
    ビルドが通った場合と失敗した場合でビルドを分けている、{{ job.status }}を使えばビルド結果は判断可能だが、色分けやメッセージを変更する場合はこのやり方が妥当でしょう。
  • if conditionalで[env.SLACK_WEBHOOK != null ]を行っている
    forkしたレポジトリからPull Requestを送るときはPR先のsecretを読み取ることができないため、slack notifyでビルドエラーになっていしまう。本末転倒なのでsecretsが取れた場合のみslock notifyを発火するようにしている
  • pullrequest, master両方トリガーにしているため、forkしたレポジトリからのpull request時にもPR元にsecretsさえ登録していれば、slack notifyが発火する(ややこしいが、PR先、PR元双方のactionsが動作することによってこれは実現される)

コメントを残す

メールアドレスが公開されることはありません。