by shigemk2

当面は技術的なことしか書かない

LT #juc2012

書籍執筆で継続的デリバリ

KINECTプログラマ

SPHINX(Pythonで作られたドキュメント生成ソフト)

書籍の原稿×Jenkins

どこで動かす?

CouldBees(Javaしか動かない?)を使う

The Jenkins English Community

一番ホットなのはUS FR GE くらいか。

いろいろなメーリスがある

  • Users Mailing List 使い方
  • Developper Mailing List 集まりなど
  • Office Hour プラグイン開発者向け
  • Twitter 宣伝or広報(対話はやらない)

コミュニティ IRCをメインにしている。
Projection Meeting 開発の方向について議論

大事なのはどういう話をするのか。
暫定役員が常にチェックしている

IRCにいるひとは皆とてもやさしい

基本英語なので、英語でどんどんtryしていってくれ

Flash(AS3) でも Jenkins

言語はFlash JavaScript

Jenkins環境でも動く
antがあればなんでも出来る
Maven3プロジェクト
JenkinsサーバにFlash

Flexmojos=Maven3 Plugin
(Flex SDKのダウンロード、コンパイル TestRunner生成などやってくれる)

pom.xmlに依存関係、コンパイルオプションなどを書く

JenkinsサーバーにFlashPlayerをインストール
Headress Server

X環境がないとFlashPlayerが動作しない
vncserver + xvfb

VNCサーバにリモートログイン

64bitOS上での動作が不安定
Flash自体が64bit環境に対応しきれていない

テストの実行時間が非常に遅い

回避しようがない

ふつうのSIerのJankinsのある暮らし

やっていることは

ビルドパイプラインの構築

サポートしている環境の組み合わせが多様なこと
Java5/Java6/Java7
PostgreSQL
Oracle
SQLServer

データベースのバージョン×Javaのバージョン

マルチ構成

Join Plugin

自動デプロイ

JenkinsはAntを実行しているだけ
TomcatのデプロイはCargo

Sleniumによるテスト実行

成果物が1回のビルドで500MB越えもザラ

ユニットテストで多様な組み合わせをカバーすることで
機能拡張が非常にスムーズに

リリースが自動化できるので手順違いのリスクを軽減できる
リリース時の精神的な安定

運用でも使えるJenkins

サーバ設定の自動化に挑戦中

普通のJenkinsのイメージ(開発、ビルド、コミット毎にテストを回す、テストを並列で走らせる)とか…

But イベントをトリガーになにかしら通知する(=なんでも出来る)

定時 cron エラーが起きてたのに気づかない
>/dev/null 2&1されてる

毎回全部のサーバを見て回るのも辛い
処理時間の統計を見るのもしんどい
→これらはJenkinsでできるよ。

通知、実行ログ、過去履歴が表示されている

REST APIで処理時間を見ることも出来る
スレーブ機能を活用してサーバの状態を見ることも出来る

ちょっとしたジョブフローを組みたい

Join Plugin Build Flow Plugin(やりすぎ注意)

運用の手間を減らせるし、仕事中にハックできるし皆しあわせになれるよ