2013年3月12日火曜日

Jenkins + Softalk で容疑者を音声出力させてみた

Groovy post build plugin を使って Softalk から音声出力させてみました。
コードはこちら。
import hudson.util.RemotingDiagnostics

def res = manager.build.getResult();
if( res.isWorseThan(hudson.model.Result.SUCCESS) ) {
    def users = manager.build.getCulprits();
    if( users != null ) {
        def command = "softalkw.exe /W:";
        def find = false;
        users.each {
            command += "${it.getDisplayName()} ";
            find = true;
        }
        if( find ) {
            command += " アウトーーー!";
            manager.listener.logger.println(command);

            def computer = manager.build.getBuiltOn().toComputer();
            def channel = computer.getChannel();
            
            def script = """
                '${command}'.execute();
            """

            RemotingDiagnostics.executeGroovy( script, channel );
        }
    }
}



manager.build.getCulprits() で容疑者のリストが取得できます。
リストからアカウント名を取得し、softalk に読み上げさせたい文字列を作成しています。
アカウント名のままだとアルファベットを読み上げるだけになってしまうので、事前に
softalkw /P:ずみっくす,srz-zumix,True
のようにして単語を登録しておいてください。

メール通知だけの環境で満足してない方は試してみるのもありかも。

0 件のコメント:

コメントを投稿