継続的インテグレーション
概è¦
継続的インテグレーション(ContinuousIntegration:継続的統åˆ)
アジャイル開発ã«å¿…è¦ãªä»¥ä¸‹ã®å·¥ç¨‹ã‚’ã»ã¼è‡ªå‹•ã§è¡Œã†äº‹
・ãƒã‚°ã¯å³æ™‚ä¿®æ£
・メンãƒãƒ¼ã¸å³æ™‚共有
ãƒ»é »ç¹ã«åºƒç¯„囲ã«åŸ·æ‹—ã«è‡ªå‹•ã§ãƒ†ã‚¹ãƒˆ
・修æ£ã‚½ãƒ¼ã‚¹ã®å³æ™‚åæ˜ (ビルド)
アジャイル開発
顧客ã®è¦æ±‚ã‚’ç´°ã‹ã切ã£ã¦ãã®éƒ½åº¦é–‹ç™ºï¼†ãƒ†ã‚¹ãƒˆï¼†ç´å“ã‚’è¡Œã†æ‰‹æ³•。
最åˆã®ä»•様やスケジュールã¨ã©ã‚“ã©ã‚“ズレã¦ã„ã事ã«ãªã‚‹ãŒ
ãã“ã«ã¯æ‹˜ã‚‰ãªã„事を顧客ã«äº†æ‰¿ã‚’å¾—ãŸä¸Šã§é€²ã‚る。
æ°¸é ã«ä»•æ§˜è¿½åŠ ãƒ»å¤‰æ›´ã‚’ç¶šã‘ã‚‹ã®ã¨ã¯é•ã„ã€
全体ã®äºˆç®—・期é™ã®åˆ¶é™ãŒã‚ã‚‹ä¸ã§ã®ä»•様・スケジュールã®å¤‰æ›´ãªã®ã§
全体的ãªã‚´ãƒ¼ãƒ«ã‚’顧客ã€é–‹ç™ºå´ãŒå¸¸ã«æ„è˜ã—ã¦ãŠã‹ãªã‘れã°ãªã‚‰ãªã„。
多ãã®å ´åˆã€ä»•様ã®å¤‰æ›´ãƒ»è¿½åŠ è¦æ±‚ãŒã‚ã£ãŸå ´åˆã«ä»£ã‚りã«ä½•ã‹ã®æ©Ÿèƒ½ã‚’削る。
スピードを伴ã£ãŸé–‹ç™ºèƒ½åŠ›ã ã‘ã§ãªãã€äºˆç®—管ç†ã‚’å«ã‚ãŸäº¤æ¸‰èƒ½åŠ›ã‚’å¿…è¦ã¨ã•れる開発手法。
継続的インテグレーションã«å¿…è¦ãªãƒ„ール
・CIツール(Jenkins,Xcodeç‰)
・テストツール(XUnit,Seleniumç‰)
・ビルドツール(Antç‰)
・ソースコード管ç†ãƒ„ール(Git,Subversionç‰)
(1)開発者:ソースコードã®å¤‰æ›´
 ↓
(2)開発者:ソースコード管ç†ãƒ„ール(Gitç‰)ã¸ã‚³ãƒŸãƒƒãƒˆ
 ↓
(3)ソースコード管ç†ãƒ„ール:CIツール(Jakinsç‰)ã¸å¤‰æ›´ã‚’通知
 ↓
(4)CIツール:ビルドツール(Antç‰)ã¸ãƒ“ルド指示
 ↓
(5)ビルドツール:ビルド
 ↓
(6)ビルドツール:CIツールã¸ãƒ“ルド終了を通知
 ↓
(7)CIツール:テストツール(JUnitç‰)ã¸ãƒ†ã‚¹ãƒˆå®Ÿè¡Œã‚’通知
 ↓
(8)テストツール:テスト
 ↓
(9)テストツール:CIツールã¸ãƒ†ã‚¹ãƒˆçµæžœã‚’通知
CIツールを利用ã™ã‚‹äº‹ã§æ‰‹å‹•ã§è¡Œã£ã¦ã„ãŸãƒ“ルド&テストãŒè‡ªå‹•ã§è¡Œã‚れる。
開発者ãŒè¡Œã†ã®ã¯(1)ã¨(2)ã®ã¿ã¨ãªã‚‹ã€‚
ã¾ã¨ã‚
良ã„開発を行ã†ç‚ºã«ã€ã‚¢ã‚¸ãƒ£ã‚¤ãƒ«æ‰‹æ³•を用ã„る。
ãã®ç‚ºã«å„種ツールを用ã„ã¦ã®é–‹ç™ºã™ã‚‹äº‹ã‚’継続的インテグレーションã¨ã„ã†ã€‚
ãªãŠã€ã€Œãƒ†ã‚¹ãƒˆé§†å‹•開発ã€ã‚’行ã†äº‹ãŒç¾æ™‚点ã§ã¯æœ€ã‚‚開発効率ãŒè‰¯ã„ã¨è¨€ã‚れã¦ã„る。
※テストツールã«ç”¨ã„るテストコードを最åˆã«æ›¸ãã€
最åˆã«ãƒ†ã‚¹ãƒˆãƒ„ールã«ã‚ˆã‚‹ã‚¨ãƒ©ãƒ¼ã‚’発生ã•ã›ã€
æ›´ã«ã‚¨ãƒ©ãƒ¼ãŒç„¡ããªã‚‹æ§˜ã«ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã‚’行ã†é–‹ç™ºæ‰‹æ³•。