🐕
GitHub Actionsワークフロー失敗時にOpsgenieアラートを作成する
やりたいこと
GitHub Actionsのワークフロー失敗時に気付く仕組みとしてはslackなどに通知するだけでなく、Opsgenieにアラートとして通知して管理したい場合があるかもしれません。
なので、今回はGitHub Actionsのワークフロー失敗時にOpsgenieにアラートを飛ばす実装例をまとめました。
方法
- ワークフロー失敗時に、OpsgenieのCreate Alert APIを叩く
- Webhookイベントを任意のエンドポイントに送信するためのGithubアクションを使う
- 今回は
joelwmale/webhook-action
を使う
- 今回は
- Webhookイベントを任意のエンドポイントに送信するためのGithubアクションを使う
事前準備
Opsgenie側の設定
- 適当なTeamでAPI Integration追加
- API IntegrationのAPI Keyをコピーしておく
GitHub Secret登録
- 先ほどコピーしたAPI KeyをGitHub Secret登録
- 今回は
OPSGENIE_API_KEY
とする
実装例
name: create opsgenie alert
on:
workflow_dispatch:
jobs:
create-opsgenie-alert:
runs-on: ubuntu-latest
steps:
# 強制的にエラー発生させる
- name: Raise an error
run: |
exit 1
# ワークフロー失敗時のみ実行されるstep
# Opsgenieアラート作成API実行
- if: failure()
name: Create Opsgenie alert on failure
uses: joelwmale/webhook-action@master
with:
url: 'https://api.opsgenie.com/v2/alerts'
headers: |
{
"Authorization": "GenieKey ${{ secrets.OPSGENIE_API_KEY }}"
}
body: |
{
"message": "Workflow failed",
"description": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}",
"tags": [ "WARN" ],
"priority": "P3",
"details": { "status": "${{ job.status }}" }
}
動作確認
- ワークフロー失敗確認
- Opsgenieアラートが作成されていることを確認
Discussion