ここでは Jenkinsビルド結果を Chatwork に通知する例を取り上げます。
前提として、あらかじめ Jenkins のビルド結果を Gmail に通知するフロー は整えておく必要があります。
大まかな手順
- Google Apps Script からプロジェクトを新規作成
- Resources > Libraries... に ChatWorkClient を追加 (プロダクトキー "M6TcEyniCs1xb3sdXFF_FhI-MNonZQ_sT" で検索 cf. チャットワークAPI を Google Apps Script で使ってみた)
- Gist のスニペットを貼り付け
- Gmail のラベルおよびフィルタを設定する (上掲 Gist のコメントを参考に)
- 通知させたいメールにラベルを付与したあと、再生ボタンを押して Chatwork に投稿があればOK
- 時計マークのボタンを押して Timer Trigger として
Gmail_Label_Chatwork_Notifier
を1分間隔で登録 (下記画像参考)
Timer Trigger 設定例
上記手順を踏んだ上で Jenkins のビルドをしてみると、結果が Chatwork へ投稿されていることを確認できます。
なぜGASなのか
自前でやろうとすると複雑になることをシンプルに実現できるためです。
- Gmail の優秀なフィルタ機能を活用できる
- JavaScript で投稿内容を加工できる (Max行など)
- Jenkins メール配信は配信条件が妥当 (失敗ビルド、不安定ビルド、back to normal 通知) # back to normal 通知便利ですよね
- Jenkins メール配信内容も妥当 (ビルドURL, 失敗時の出力結果)
しかし、back to normal 通知や投稿内容の加工など、そもそも多くを求めない場合は ChatWork Plugin を使うのが手っ取り早いはずです。
また、この方法のデメリットとしてビルド完了から最大1分ほどの遅延が発生しうることがあります。
GASスニペット
GAS使ってみた所感
GAS初めて使ってみましたが、自動化への貢献度が高そうで気に入りました。
2016-05-24 追記
リファレンスを見てみたところカレンダー関連のAPIを発見しました!
Calendar Service | Apps Script | Google Developers
GAS、着実に進化していますね。
Author:
0 件のコメント:
コメントを投稿