continues integration development
DESCRIPTION
promote the CI System(Jenkins) for staff.TRANSCRIPT
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
Continues Integration DevelopmentReporter : PRADA Hsiung
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
Outline
What’s the CI?
Why Jenkins?
CI Environment in iaSolution
Case Study
Conclusion
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
What’s CI?What’s the Quality of software?
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
Jenkins
JIRA
CORAL
The Joel Test有用原始碼控制系統 ?
能一步驟建出所有結果 ?
有每天都重新編譯建立 (daily builds)?
有問題追蹤資料庫 (bug database)?
你會先把問題都修好之後才寫新的程式 ?
有最新的時程表 ?
有規格書 ?
程式人員有沒有安靜的工作環境 ?
用市面上最好的工具 ?
有測試人員 ?
在面試時要求面試對象寫程式 ?
有做走廊使用性 (hallway usability)測試 ?
Makefile
SVN
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
The Step for Develop a Software
ConfigVersionControl
Planning Coding Build
CompileIssueTrack
Test Publish
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
What’s thing Jenkins do?
ConfigVersionControl
Planning Coding Build
CompileIssueTrack
Test Publish
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
Problem 1Always Worst a lot of time for everybody
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
Before ..
GameDB..
JJ>TT :麻煩 build一版新的 warTT >GG:幫我把 war放到 server(過了十分鐘 ):弄好了TT >JJ:GG>TT弄好了JJ>BB :開始測吧(過了三十分鐘 )BB>JJ:Done.
Emulator
JJ -> AA: give me the newest gamedb-bundle emulator (past 30 min)AA-> JJ : give you a emulator.rar on LAINJJ -> RR : 去 angus的 LAIN抓最新的來測試 ISSUE-5786(過了十分鐘 )RR-> JJ : OK, it’s work
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
Worst Case.GameDB..
JJ>TT:麻煩 build最新的 warTT >GG:幫我把 war放到 server(過了十分鐘 )GG>TT:弄好了TT >JJ:弄好了JJ>BB:開始測吧(過了十分鐘 )BB >JJ:有問題JJ>TT:有問題 ,快修(過了十分鐘 )TT >GG:build錯版本了 ,再幫忙放一次(過了十分鐘 )GG>TT:弄好了TT >JJ:弄好了JJ>BB:開始測吧
(過了十分鐘 )BB >JJ:有問題JJ>TT:有問題 ,快修(過了十分鐘 )TT >GG:剛資料庫連錯 ,再幫放一次(過了十分鐘 )GG>TT:弄好了TT >JJ:弄好了JJ>BB:開始測吧BB >JJ:不行 ,我要回家吃飯了 .
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
After ..
GameDB..JJ >Jenkins: 開始工作吧 .Jenkins>JJ: 環境已替您準備好了JJ >BB : 開始測吧(Past 30 mins)BB >JJ: it’s work
EmulatorJJ -> Jenkins : 夥計開工了Jenkins -> RR : 模擬器替您準備好了(過了十分鐘 )RR -> JJ : OK, it’s work
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
Conclusion
Summary
GameDB..
Member Counting Total
JJ 2m + 5m + 5m 12m
TT 10m + 5m + 5m 20m
GG 10m + 5m 15m
BB 30m + 5 m 35m
Member Counting Total
JJ 2m + 5m 7m
TT 0m
GG 0m
BB 30m + 5 m 35m
Jenkins 10m + 10 m 20m
82min
62min
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
Conclusion
Summary
GameDB Worst Case
Member Counting Total
JJ 2+5+5+5 17m
TT 5+10+5+5+10+5+5+10+5
60m
GG 5+10+5+10+5+10 45m
BB 5+30+5+30+5+30 105m
Member Counting Total
JJ 2+5+5 12m
TT 5+10+5+10 20m
GG 0m
BB 5+30+5+30+5+30 105m
Jenkins 10+10+10+10+10+10
60m
227min
197min
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
Conclusion
Summary
Emulator..Member Counting Total
JJ 2m + 5m + 5m 12m
AA 30m + 5m 35m
RR 10m + 5m 15m
Member Counting Total
JJ 2m + 5m 12m
AA 0m
RR 10m + 5m 15m
Jenkins 30m 30m
62min
57min
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
Problem 2The Magic Machine
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
Before ..
你少裝一個 lib啦
工具的版本錯了阿
昨天明明會動的啊!
你設定寫錯了好嗎
這一定是機器的問題
怎麼可能 !
這兩個版本不相容
在我的機器明明就可以動啊!
環境設定寫錯了
在我電腦就可以你電腦有毒吧?
一定是你的資料有問題
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
After ..
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
Conclusion
Summary
Jenkins環境純淨 ,保證產出的程式能安全使用
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
Problem 3People Always Make Mistake
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
Before ..
我忘記加一個參數
少 commit一個檔案
資料庫位置錯了
我拿到舊的 code
忘記拿掉那個 Plugin我少做了一步驟
檔案不是最新的 !
有人亂改我的 code
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
After ..
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
Conclusion
Summary
Jenkins 保證 SVN的 Code一定可用 ,且始終如一
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
Why Jenkins?Hint..
Jenkins並非萬能,主要用來改善程式碼編寫的習慣,以達到高品質軟體,請聽眾不要過分幻想。
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
Why Jenkins?Benefit
Easy to use: java –jar jenkins.warFashion :The web UI
Easy to updateEasy to extend new feature(over 1000 Plugin)
Mobile supportEasy to scale out
https://wiki.jenkins-ci.org/display/JENKINS/Plugins#Plugins-ListViewcolumnplugins
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
Flowchart
CheckoutRun Test CaseBuild ProjectCollect ReportDeployTag JIRA Version
Tag SVN versionSend E-mail
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
CI Env.SVN
SVNSVN
JIRAJenkins
Windows
Linux
Windows
TestServer
Prod.Server
ICTServer
RD
QA
Manager
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
Conclusion
Conclusion
方便,是為了花更多時間作更有意義的事情
…PRADA Hsiung
Aplix Confidential and Restricted Copyright 2009 Aplix Corporation. All rights reserved.
Reference
約耳測試: 邁向高品質的12個步驟Android + jenkinsHudson Helper on Androidhttp://blog.vgod.tw/category/divine-code/吊床上的成功學程式設計師常見藉口