もふもふ技術部

Jenkins x Twilioで、テストに失敗したらJenkins先生に電話でdisられる仕組みを作ってみた


もふもふ部の部長、原田敦です。
Jenkinsと言えばビルドの失敗をいかに面白おかしく通知するかを愉しむソフトウェアですよね。そこで思いついたのがTwilio(電話API)です。ビルドに失敗したらJenkins先生から直々にお叱りの電話がかかってくる、なんてちょっと楽しいんじゃないかと思いましてね。

さてさて。
Jenkinsで既にビルドが組んであり、Twilioのアカウントも既に持っているものとしてやっていきます。Twilioアカウントはひとまずはトライアル状態でも大丈夫です。

まだアカウント取得していなければこちらからどぞ。
http://twilio.kddi-web.com/

curlで電話をかける

今回は単純に電話をかけるだけなので、シェルスクリプトからcurlを叩くことを想定。
なのでまずはcurlで電話をかけるところまでやってみます。

curlはこんな感じ。

各情報を確認するためTwilioのサイトにログインします。
<Account SID>と<Auth Token>はTwilioのダッシュボードで確認できます。
twilio_01

Fromは 電話番号=>TWILIO電話番号 画面に表示されている番号を。
+記号やらがURLエンコードされてますので適宜読み替えてください。
twilio_02

Toは 電話番号=>検証済み電話番号 画面の番号を。たぶんアカウント登録時に認証した電話番号です。
twilio_03

UrlにはTwimlというxmlファイルのURLを入力します。これは自分のサーバに置くなりなんなりでWEBから見えるところに配置する必要があります。

今回はぼく自身のサーバに下記のような内容で配置しました。

http://api.harada-atsushi.info/twiml/jenkins_01.xmlでアクセス出来るようになっています。

jenkins_01.xml

ここまで出来たらコマンドラインでcurlを叩いてみます。
電話がかかってきたらOKです。jenkins先生の設定に進みましょう。

Jenkins先生の設定

既にビルドが組まれている前提で簡単にやってみます。
まずは該当のプロジェクトの設定画面を開きます。

ビルド手順の追加からシェルの実行を選択し、下記のような内容のシェルスクリプトを登録します。
今回はCakePHPのプロジェクトなのでcakeコマンドでユニットテストを実行しています。
twilio_04

ちなみに、シェルスクリプトの先頭に「#!/bin/sh」をつけないと、ユニットテストが異常終了した時点でシェルスクリプトが終了してしまうため電話がかかってきません。ご注意を。

それでは、ビルドしてみましょう。gitなりなんなりで失敗するユニットテストを含めて、画面から「ビルド実行」を選択。しばらく待ちます。

お、かかってきた。すっとこどっこいって言われちゃいました!
すみませんJenkins先生。小学生からやりなおしてきますね!

twimlを増やして、ランダムで色んなパターンのお叱り電話がかかってくるようにするのも楽しそうですね。またそのうちやってみようかな。

The following two tabs change content below.
原田 敦

原田 敦

日本CAWのエンジニア。もふもふ部の部長。得意分野はRuby on Railsを使った小規模WEBアプリケーションを高速で開発すること。週末の楽しみは一人お菓子パーティー。三度の飯より小動物をもふもふするのが好きです。
Tagged on: