IoT開発に役立つサービスを一気に学べる勉強会

1ヶ月ほど前に「IoT開発に役立つサービスを一気に学べる勉強会@大阪」に参加しました。
IoTの具体的な開発の進め方は社内に居ても分からないのと、主催者がCoderDojo関係ということで参加しました。

  1. 「さくらのセキュアモバイルコネクト」

さくらインターネットさんが提供するIoTプラットフォームの紹介でした。

セッション後の懇親会でも話を聞けたのですが、IoTがカジュアルに試せる環境を作成していきたいと言っていたのが印象的でした。
実際、IoTを試してみようとすると何かとハードルが高いので、さくらインターネットさんのサービスを利用すれば、そのハードルも下がると思います。

  1. 「isaax」を使ったPoCからプロダクションまでの開発

IoTの受託案件の実例を紹介してくれました。
IoTの開発を行う場合、issaxのような仕組みが必要だと思います。

  1. AWS IoT」「AWS Greengrass」のご紹介

AWSのサービスを紹介してくれていましたが、数が多すぎて正直、理解しきれませんでした^^;

上流ビルドのコミッタ-にメール通知する方法

Jenkinsを仕事で試してから早1年。

備忘録として個人的に困ったことの対処法などを残しておこう。

通常の使い方ではないのだろうけど、.Netframework1.1のプログラムを.Netframework4にコンバートしなければいけなくなった。

コンバート用のバッチは作成できたけれど、それを毎回、手動で実行するのは効率が悪かったので、Jenkinsに実行して貰うようにした。

だいたい流れは次の通り

  1. .Netframework1.1のVSS からソースを取得して、コンバート用バッチを実行
  2. コンバート結果を.Netframework4でビルド
  3. コンバート結果を.Netframework4のVSSにチェックイン

やりたいことは以上でも問題なかったけど、2番目のジョブでビルドが失敗したとき、コミットした人にメールを送りたかったのだが、ビルド履歴は1番目のジョブに紐づいているので、失敗メールを送れなかった。

対応策

ジョブの通知は Email-ext plugin を使用しているが、このプラグインにはスクリプトを設定できる機能がある。*1

そこに以下のようなスクリプトを書くことで上流ビルドのコミッターを取得してメール送信するようにしてみた。

import javax.mail.Message.RecipientType
import hudson.tasks.Mailer

def job = build.project
def dep = hudson.model.Hudson.instance.dependencyGraph
def upjobs = dep.getUpstream(job)
def list = []

def changeset= build.getUpstreamRelationshipBuild(upjobs[0]). getChangeSet()

changeset.each{
   address = it.getAuthor().getProperty(Mailer.UserProperty.class).getAddress()

   if(!list.contains(address)){
      println address
      list.add(address)
   }
}

list.each{ msg.addRecipients(RecipientType.CC, it ) }

*1:高度な機能に Pre-send Script という設定項目がある