今日ふと下記のようなことを思った。
Github Actionsでワークフロー失敗したらslack通知みたいなのどうやると良いかなと思ってたけどworkflow_runというイベント使って別のワークフロー作ってあげる感じかな?
— はたっぴ (@hatappi) 2020年9月21日
たしかに workflow_run
を使えばワークフローが失敗した時に任意のstepは実行できそう。
この方法だとワークフローが別れてしまうので、あまりスッキリしない。
すると下記のような返信をいただいたので試してみた。
Slack通知のstepに `if: {{ $failure() }}` を付けてあげると感じでもいけそうですかね 👀https://t.co/qjpHUbQsk2
— ohbarye (@ohbarye) 2020年9月21日
下記のようなワークフローを用意して実行する。
failure()
以外にも失敗しても成功しても実行するalways()
も指定している。
name: Failure Sample on: [push] jobs: failure: name: Failure runs-on: ubuntu-latest steps: - run: datee # typo - run: echo "successが呼ばれた" if: ${{ success() }} - run: echo "failureが呼ばれた" if: ${{ failure() }} - run: echo "alwaysが呼ばれた" if: ${{ always() }}
結果としては failure()
, always()
を指定した step が失敗しても実行された。
なるほど〜〜便利