第4回Jenkins勉強会に参加してきた #jenkinsstudy
(写真:夜の六本木ヒルズ。)
第4回Jenkins勉強会を開催します。 今回のテーマは「C/C++/C#(...etc)プロジェクトにおけるJenkinsの運用について」です。 第2回で取り上げたJava、第3回で取り上げたLL言語とはまた違った視点からの有用な事例を聞けることでしょう。 興味がある方はぜひご参加ください。 ハッシュタグ:#jenkinsstudy
はい、と言う訳でJenkins勉強会、参加して参りました。Jenkins勉強会については第1回を除いて第2回から連続で、また一昨日にはJenkins関連の勉強会にも参加して来ましたので2日振りの川口さんご拝見、という感じです。
開催場所はグリー株式会社。以前HTML5とか勉強会でGoogleに訪れて以来の六本木ヒルズです。
講演:クロスコンパイルに役立つmatrix projectの紹介
川口さんの服装、『JenkinsTシャツ』なのはさすがです。:-)
- モデル
- 軸を定義
- 軸=forループ
- 軸には幾つもの種類がある
- スレーブ:複数のスレーブ
- 軸を定義
- 組み合わせフィルタ
- 全組み合わせを実行すると数が多すぎる場合
- 意義のない・不可能名組み合わせがある場合
- ブール式で有意義な組み合わせを指定
- indexを使って一律カット
- バラエティを保ちつつ均等に間引く
- (Jenkins実演デモ)
- 環境によって影響を受けやすい、という状況が、CやC++等が多いのでは。
質疑応答:
- Q:機能を知っていた人?
- A:数人。川口さん『紹介した甲斐がありました』
- Q:川口さんがマルチプロジェクトをどういう件で使ったか
- A:異なるJDKでのテスト/以前のバージョンとの連携確認テストなど。
講演:「Jenkins+α」で開発環境がみるみる良くなる VisualC++編
- Jenkinsstudy#4kokawa
- View more presentations from Takashi Kokawa
- 自己紹介
- CIしてますか?
- 継続的インテグレーション
- Continuous Integration:(統合・統一)
- アジャイル開発ツール3種の神器
- SCM, BTS, CI
- 変更に強い、健全な環境を維持
- 継続的インテグレーション
- Jenkinsさん
- Visual C++編
- Jenkinsと他のツールの組み合わせ方を紹介
- 組み合わせを使ってナンボ
- 具体的な説明のために環境を特定しました
- 他の環境にも適用可能です。
- Jenkinsと他のツールの組み合わせ方を紹介
- Jenkins + アルファ
- 自動ビルド
- 必須!
- MsBuild か devenv
- MsBuild plugin(オススメ!)
- MsBuildは.NET フレームワークに入っています
- Visual Studioのインストール不要。
- 自動ビルド
- バージョン管理システムとの連動
- svnとの連動はpost-commit-hookかポーリング
- 自動ビルド+警告検知
- Warnings plugin
- チームの現状に会わせて設定
- ベストは警告レベル4で検出0!
- まずは『新規』検知から潰す
- 自動テスト
-
- その他テストツールは
- CppUnit, CppTest, Mstest…
- その他テストツールは
- UIの自動テスト
- 起動→終了だけでも効果あり!
- Jenkinsのスレイブをテスト専用環境に入れてクリーンな環境で実行
- 利用者と同じ環境設定
- リソース忘れ等の確認
-
- UI操作自動化ツールをコマンドラインから実行
- AutoIt
- AutoIt - AutoItScript
- AutoItで自動化:お題目うぉっち
- Windows専用、ネイティブAPIを直接呼ぶ
- ウインドウ被ってても関係なくテスト出来る
- Sikuli
- Project SIKULI
- [http://www.aivy.co.jp/BLOG_TEST/nagasawa/b/2010/01/sikuli.html:title=「必要なのはスクリーンショット」というプログラミング環境「SIKULI」が面白い。 - [モ]Modern Syntax]
- スクリーンショットベースのスクリプト
- windows, mac os x, Linux
- リアルタイム系のテストには向いてない。
- AutoIt
- UI操作自動化ツールをコマンドラインから実行
- 静的解析&メトリクス分析
- Cppcheck Plugin
- 実装漏れ(TODO)検知
- Task Scanner Plugin
- Task Scanner Plugin - Jenkins - Jenkins Wiki
- TODO, Note
- Task Scanner Plugin
- コーディングルールのチェック
- cppLint
- Violatons pluginで対応
- メトリクス分析
- コード行数やコメント率、複雑度などを分析
- 推移や他のプロジェクトと比較して健全度を測る
- ※うまく運用するのが難しい点でもある。
- CCCC(C and C++ Code Counter)
- あんま使い物にならなかった。
- Sonar(C, C#)
- コラボレーションツール
- P+ython Plugin
- とりあえずわさったものを片っ端から紹介してみました。どや!(ドヤ顔写真は寝入れれど)
- 全部のせの巨大なシステムを見せられても引きます。
- 引いた人もいるでしょ?
- もともと開発環境系のツールに詳しかったわけではない。
- 統合すると便利そうなものを試そう。
- 効果が出そうなものを本番環境へ導入。
- Jenkins(hudson)さんとぼくの歴史(上/下)
- まとめ
- まずは自動ビルドから。
- 次に効果の高そうなところから
- 関係者と価値観を共有しながら
- 継続していきましょう。
- Visual Studio GUIのテスト大変。うまい遣りようは無いのか?
- ビルドの設定
- ネットの情報で有益なものがあったのでそれで。。。
講演:輪るBingドラム.NET - CI戦略、しましょうか(仮)
- 輪るビングドラム.NET
- View more presentations from bleis tift
- 詳しくは『大阪Jenkins勉強会』の各種資料を御覧下さい。
- まとめると『MSbuild便利だよね。』
- この発表では以下について発表します。
- 構成の紹介
- 実際に運用してどうだったか
- 会社
- 社員数:10人、協力会社含めても20人
- 1チーム2〜6人
- システムの種類:webサービス等
- 環境
- .NET framework 1.1〜4.0
- C#, F#
- Git/MSBuild/NUnit
- Jenkins
- 構成
- 社内では出来る限り模したサーバを構築
- ビルド環境も別途Jenkins環境として用意
- プロジェクト毎のJenkinsの構成
- Jenkins単体:失敗するビルドを公開してしまう
- ビルドを壊すものを避ける事が出来なかったのでgitで回避
- ゲートチェックイン(詳しくは@bleisさんのSlideshareを参照!) (※以下のスライドかな?)
- bleis tift Presentations
- SCM Boot Camp
- View more presentations from bleis tift
- bleis tift Presentations
- Jenkinsオススメプラグイン
- Simple Theme Plugin - Jenkins - Jenkins Wiki
- チームで喋らせたいキャラとかいれば是非。
- Git Plugin - Jenkins - Jenkins Wiki
- MSBuild Plugin - Jenkins - Jenkins Wiki
- NUnit Plugin - Jenkins - Jenkins Wiki
- Groovy Postbuild Plugin - Jenkins - Jenkins Wiki
- ビルドが終わった後に動かせるプラグイン/成功したビルドを何らかの条件で失敗させたい場合。
- Active Directory plugin - Jenkins - Jenkins Wiki
- ドメイン指定するだけで使えるようになる。
- Role Strategy Plugin - Jenkins - Jenkins Wiki
- Simple Theme Plugin - Jenkins - Jenkins Wiki
- Jenkins導入の効果
- 問題の早期発見
- リリースプロセスの標準化
- 導入前はリリースはかなり適当だった
- 開発者に安心を与える
- (個人的に)思いもよらない効果
- 開発者は不安を持っている
- 手許ではビルド出来るけど、他では…?
- さっきの変更で他の何か壊してないかなぁ…?
- 開発者は不安を持っている
- (個人的に)思いもよらない効果
- 失敗談
- ビルド後に行う処理をjenkinsの外に出したこと
- →だめなこと
- 全てのビルドを1つのマシンに集約したこと
- 何もないところからビルドせずに問題発見が遅れたこと
- ビルド後に行う処理をjenkinsの外に出したこと
- Jenkins内で完結させる
- そうしないと、ビルドの設定が面倒になる
- ビルドの設定の確認も面倒になる
- 他のマシンへの流用が面倒になる
- どうする?
- 無理して1つにまとめない
- そうしないと
- ビルドマシンの中がぐちゃぐちゃに
- 失敗するべきビルドが成功してしまうことも
- どうする?
- 必要な環境毎にビルドマシンを分ける
- 各々をスレーブ毎にわける(まだできてない)
- そうしないと
- 必ず何もないところからビルドする
- そうしないと
- 失敗するべきビルドが成功してしまう
- どうする?
- 何も無いところからビルドするようにしましょう。
- こんな当たり前のことで失敗してしまった
- 何も無いところからビルドするようにしましょう。
- そうしないと
- まとめ
- .NETでもJenkins便利です
- 開発者に安心感を!
- 基本に忠実に!
- 質疑応答
- TFSが優れているところは?
- →オールインワンであるところ。
- ※でも用意は非常に面倒ですよ。
- TFSが優れているところは?
LT:Jenkinsを愛する全ての人に贈る『Jenkins実践入門』 11月発売! 目次チラ見せしちゃいます
- Jenkins実践入門目次チラ見せしちゃいます
- View more presentations from Lino
- Jenkinsの情報収集ってどうやってますか?
- ヘルプ
- Wiki
- 日本Jenkinsユーザ会
- Jenkins ML
- 洋書
- 男は黙ってソースを読む!
- 自由度が高すぎてどうすればよいか…
Jenkins実践入門 ?ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)
- 作者: 佐藤聖規,和田貴久,河村雅人,米沢弘樹,山岸啓,川口耕介
- 出版社/メーカー: 技術評論社
- 発売日: 2011/11/11
- メディア: 単行本(ソフトカバー)
- 購入: 26人 クリック: 496回
- この商品を含むブログ (64件) を見る
- 川口さん監修!
- 現場の声、ベストプラクティスも!
- サンプルプロジェクトも!
- 2011/11/11発売予定。
- 目次の紹介。
- よりすぐりのコラムも充実。
- 印税は入らないそうです...
LT:こっちだってJenkinsを愛する全ての人に贈る『Jenkins The Definitive Guide日本語訳』 実践入門の(たぶん)ちょっと後に発売!
- Jenkins the definitive guide lt(第四回jenkins勉強会)
- View more presentations from 玉川 竜司
こちらの前半は連続写真で御覧下さい。上記の書籍が出る、という事を踏まえた味わい深い(著者にとっては泣きたくなるような)展開となっております…^^;
- @tamagawa_ryujiさん曰く、『印税は私に入ります』という事らしいです。
- Hadoopの書籍(象本)が有名。
- 作者: Tom White,玉川竜司,兼田聖士
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/01/25
- メディア: 大型本
- 購入: 9人 クリック: 449回
- この商品を含むブログ (73件) を見る
- 『Jenkins: The Definitive Guide』の訳本。
Jenkins: The Definitive Guide: Continuous Integration for the Masses
- 作者: John Ferguson Smart
- 出版社/メーカー: O'Reilly Media
- 発売日: 2011/07/30
- メディア: ペーパーバック
- クリック: 12回
- この商品を含むブログ (13件) を見る
-
- まじめな人英語読める人は英語読んだ方が良いよ。
- ちなみに:マルチ構成プロジェクトの話はかなりくわしく書かれています。
- Amazon Web Services のEC2とか、CloudbeesさんのDEV@cloudの話も出て来ます。
- 発売予定は?
- おそらく1月に出せるのでは。
- ご期待下さい!
LT:Jenkins温泉とは何だったのか(仮)
- 自己紹介
- Jenkins温泉とは何だったのか!
- 良い大人達が
- 一日中
- (以下略)
- 一般人からみると明らかに異質な集団による集まりでした。
- Jenkins温泉の内容
- 2011/10/09〜2011/10/11 二泊三日の開発温泉合宿。
- 総評
- 川口さんとリアルタイムでやり取りできる!
- Jenkins漬け。頭を切り替えられる。
- 次回乞うご期待!(あるのか?)
LT:Ruby Plugins for Jenkins
終演時間まで間が空いていた為、突発的にLTが追加されました。こちらはそのうちの1つ、Rubyに関するものです。
スライド資料は上記の1枚のみ。あとはリンクを辿ったり実演等で解説を行っておりました。関連スライドは以下。
- Ruby Plugins for Jenkins
- View more presentations from cowboyd
LT:Jenins Confの開催報告
先日海外で行われた『Jenkins user conference 2011』に関する報告LT。
- CloudBees: Cloud Platform as a Service for Java Web Apps, Supported Jenkins/Hudson and Jenkins/Hudson in the Cloud
- Jenkins user conference 2011
- View more presentations from Kohsuke Kawaguchi
- 発表への応募 30+
- 参加者:250位
- 7スポンサー
- 2トラック 20の発表
- 世界各国から参加者が集まった。
- ホテルの2フロアを貸し切り。
- 川口さんの発表:plugin growth
- 2007年から増加。
- チケットのアクティビティ
- 増加+ペースも増えている
LT上ではこんな書籍の紹介もありました。PHP x Jenkins。
Integrating PHP Projects with Jenkins: Continuous Integration for Robust Building and Testing
- 作者: Sebastian Bergmann
- 出版社/メーカー: O'Reilly Media
- 発売日: 2011/10/02
- メディア: ペーパーバック
- この商品を含むブログ (1件) を見る
個人的にはJenkins洋書を購入し実践を踏まえて読み進め中だったので、(C++/C#等寄りのセッションではありましたが)数多くのプラグインが存在し、利用・実践手法を知る事が出来たので非常に有意義な勉強会になりました。
なお、Jenkins本原書はeBook形式で無料で入手可能だそうです。今回発表されたJenkins本×2冊が出る前に、英語版で挑戦してみるのは如何でしょうか。(個人的には読み易い方だと思います。)
その他関連サイト: