輪るビングドラム.NET

28
CI 戦略しましょうか bleis-tift October 15 2011

Transcript of 輪るビングドラム.NET

Page 1: 輪るビングドラム.NET

CI戦略しましょうか

bleis-tift

October 15 2011

Page 2: 輪るビングドラム.NET

自己紹介

id:bleis-tift / @bleis

名古屋から来ました

.NET系プログラマです

お仕事で Jenkins使ってCIまわしてます

Page 3: 輪るビングドラム.NET

お詫び

Bingとか出てきません。

Page 4: 輪るビングドラム.NET

今日やること

第一回大阪 Jenkins勉強会で、おださんが大抵のことを発表してくれました。

http://slidesha.re/nY5x7s

まとめると、「MSBuild便利」と理解しました。

この発表では、

構成の紹介

実際に運用してみてどうだったか

を中心に話します。

Page 5: 輪るビングドラム.NET

お仕事について

社員の数 十数名。協力会社の人を入れると 20人くらい?

チームの大きさ 2人~6人

システムの種類 Webサービスなど

環境 .NET Framework(1.1~4.0 / C#、F#) /Git / MSBuild / NUnit

こんな環境で Jenkins使っています

Page 6: 輪るビングドラム.NET

構成 (全体)

Page 7: 輪るビングドラム.NET

構成 (全体)

Page 8: 輪るビングドラム.NET

構成 (全体)

Page 9: 輪るビングドラム.NET

構成 (全体)

Page 10: 輪るビングドラム.NET

構成 (全体)

Page 11: 輪るビングドラム.NET

構成 (全体)

Page 12: 輪るビングドラム.NET

構成 (プロジェクトごと)

Page 13: 輪るビングドラム.NET

構成 (プロジェクトごと)

この話は以前何度かしているので、詳しくはそちらをどうぞ。

http://slideshare.net/bleistift/

もしくは懇親会で。

Page 14: 輪るビングドラム.NET

使っている主なプラグイン

Simple Theme Plugin

Git Plugin

MSBuild Plugin

NUnit Plugin

Groovy Postbuild Plugin

Active Directory Plugin

Role Strategy Plugin

Page 15: 輪るビングドラム.NET

使っている主なプラグイン

Simple Theme Plugin

Git Plugin

MSBuild Plugin

NUnit Plugin

Groovy Postbuild Plugin

Active Directory Plugin

Role Strategy Plugin

Page 16: 輪るビングドラム.NET

使っている主なプラグイン

Page 17: 輪るビングドラム.NET

使っている主なプラグイン

Simple Theme Plugin

Git Plugin

MSBuild Plugin

NUnit Plugin

Groovy Postbuild Plugin

Active Directory Plugin

Role Strategy Plugin

Page 18: 輪るビングドラム.NET

使っている主なプラグイン

Simple Theme Plugin

Git Plugin

MSBuild Plugin

NUnit Plugin

Groovy Postbuild Plugin

Active Directory Plugin

Role Strategy Plugin

Page 19: 輪るビングドラム.NET

使っている主なプラグイン

Simple Theme Plugin

Git Plugin

MSBuild Plugin

NUnit Plugin

Groovy Postbuild Plugin

Active Directory Plugin

Role Strategy Plugin

Page 20: 輪るビングドラム.NET

使っている主なプラグイン

Simple Theme Plugin

Git Plugin

MSBuild Plugin

NUnit Plugin

Groovy Postbuild Plugin

Active Directory Plugin

Role Strategy Plugin

Page 21: 輪るビングドラム.NET

Jenkins(CIツール)導入の効果

問題の早期発見

リリースプロセスの標準化

開発者に安心を与える

(個人的に)思いもよらない効果

Page 22: 輪るビングドラム.NET

安心感を与える理由

開発者は不安を持っている

手元ではビルドできるけど、他では・・・?

急にリリースが必要になったけど、この dllでいいんだっけ・・・?

さっきの変更で他の何か壊してないかな・・・?

などなど

Jenkins(CIツール)の導入によって、これらの不安をある程度解消できた

Page 23: 輪るビングドラム.NET

失敗談

ビルド後に行う処理を Jenkinsの外に出したこと

全てのビルドを 1つのマシンに集約したこと

何もないところからビルドせずに問題発見が遅れたこと

Page 24: 輪るビングドラム.NET

Jenkinsで完結させる

そうしないと・・・

ビルドの設定が面倒になる

ビルドの設定の確認も面倒になる

他のマシンへの流用が面倒になる

どうする?

Groovy Plugin / PowerShell Pluginなどを使う

Groovy Postbuild Pluginを使う

最終的にはPlugin化することも考える

Page 25: 輪るビングドラム.NET

無理して一つにまとめない

そうしないと・・・

ビルドマシンの中がぐちゃぐちゃに

失敗するべきビルドが成功してしまうことも

どうする?

必要な環境ごとにビルドマシンを分ける

各々をスレーブにしてまとめる

←できてない

Page 26: 輪るビングドラム.NET

無理して一つにまとめない

そうしないと・・・

ビルドマシンの中がぐちゃぐちゃに

失敗するべきビルドが成功してしまうことも

どうする?

必要な環境ごとにビルドマシンを分ける

各々をスレーブにしてまとめる←できてない

Page 27: 輪るビングドラム.NET

必ず何もないところからビルドする

そうしないと・・・

失敗するべきビルドが成功してしまう

どうする?

何もないところからビルドするようにしましょう

こんな当たり前のことで失敗してしまった・・・

Page 28: 輪るビングドラム.NET

まとめ

.NETでも Jenkins便利!

開発者に安心感を!

基本に忠実に!