🐕

GitHub Actionsワークフロー失敗時にOpsgenieアラートを作成する

2022/05/28に公開

やりたいこと

GitHub Actionsのワークフロー失敗時に気付く仕組みとしてはslackなどに通知するだけでなく、Opsgenieにアラートとして通知して管理したい場合があるかもしれません。
なので、今回はGitHub Actionsのワークフロー失敗時にOpsgenieにアラートを飛ばす実装例をまとめました。

方法

  • ワークフロー失敗時に、OpsgenieのCreate Alert APIを叩く
    • Webhookイベントを任意のエンドポイントに送信するためのGithubアクションを使う
      • 今回はjoelwmale/webhook-actionを使う

事前準備

Opsgenie側の設定

  1. 適当なTeamでAPI Integration追加
  2. API IntegrationのAPI Keyをコピーしておく

GitHub Secret登録

  1. 先ほどコピーした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 }}" }
            }

動作確認

  1. ワークフロー失敗確認
  2. Opsgenieアラートが作成されていることを確認

Discussion