輪るビングドラム.NET

Post on 26-Jun-2015

9.349 views 0 download

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

CI戦略しましょうか

bleis-tift

October 15 2011

自己紹介

id:bleis-tift / @bleis

名古屋から来ました

.NET系プログラマです

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

お詫び

Bingとか出てきません。

今日やること

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

http://slidesha.re/nY5x7s

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

この発表では、

構成の紹介

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

を中心に話します。

お仕事について

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

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

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

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

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

構成 (全体)

構成 (全体)

構成 (全体)

構成 (全体)

構成 (全体)

構成 (全体)

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

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

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

http://slideshare.net/bleistift/

もしくは懇親会で。

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

Simple Theme Plugin

Git Plugin

MSBuild Plugin

NUnit Plugin

Groovy Postbuild Plugin

Active Directory Plugin

Role Strategy Plugin

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

Simple Theme Plugin

Git Plugin

MSBuild Plugin

NUnit Plugin

Groovy Postbuild Plugin

Active Directory Plugin

Role Strategy Plugin

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

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

Simple Theme Plugin

Git Plugin

MSBuild Plugin

NUnit Plugin

Groovy Postbuild Plugin

Active Directory Plugin

Role Strategy Plugin

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

Simple Theme Plugin

Git Plugin

MSBuild Plugin

NUnit Plugin

Groovy Postbuild Plugin

Active Directory Plugin

Role Strategy Plugin

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

Simple Theme Plugin

Git Plugin

MSBuild Plugin

NUnit Plugin

Groovy Postbuild Plugin

Active Directory Plugin

Role Strategy Plugin

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

Simple Theme Plugin

Git Plugin

MSBuild Plugin

NUnit Plugin

Groovy Postbuild Plugin

Active Directory Plugin

Role Strategy Plugin

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

問題の早期発見

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

開発者に安心を与える

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

安心感を与える理由

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

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

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

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

などなど

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

失敗談

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

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

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

Jenkinsで完結させる

そうしないと・・・

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

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

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

どうする?

Groovy Plugin / PowerShell Pluginなどを使う

Groovy Postbuild Pluginを使う

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

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

そうしないと・・・

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

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

どうする?

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

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

←できてない

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

そうしないと・・・

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

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

どうする?

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

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

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

そうしないと・・・

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

どうする?

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

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

まとめ

.NETでも Jenkins便利!

開発者に安心感を!

基本に忠実に!