2011年7月31日 星期日

Flash 與 Hudson

7/29 剛參加完 2011 JavaTwo 活動,這次活動吸引我去聽的講題是 Hudson CI Server;今晚趁夜深人靜、沒有小孩在旁邊跑來跑去的時候,練習了一下整個環境建置過程。

1.
Flash Builder 4 要支援 Ant,必須先安裝 Eclipse Java Development Tools (JDT)。不過安裝後只是便於我們透過 Ant 面板執行 build.xml 罷了,我們還是必須自己寫 Flex 專案的 build.xml 才行。

這裡有篇官方文章說明步驟:
http://www.adobe.com/devnet/flex/articles/flex_ant_pt1.html

可自行建立一個 HelloWorld 的專案來玩玩,並複製改一份 build.xml 來用,並且測試可使用 Ant 編譯成功。

2.
建置 SCM 檔案版本控管軟理,我採用 SVN,先建置 Server 部分,安裝下載 VisualSVN-Server-2.1.9.msi。至於 Client 端的部分看是要使用 Subclipse for Eclipse 或安裝下載 TortoiseSVN-1.6.16.21511-win32-svn-1.6.17.msi 皆可。

將可用 Ant 編譯成功的 HelloWorld 專案 commit 到 SVN Server 上,只需上傳 /src、/libs、/build.xml 與 /build.properties 即可。

3.
下載 hudson-2.1.0.war,使用 command line 執行 "java -jar hudson-2.1.0.war" 後,就可進入 http://localhost:8080/ 看管理介面。

進入管理介面後,可輕易的建立一個新的 free style 專案,指定 SVN 的 Repositroy URL,如 "http://127.0.0.1:8100/svn/HelloWorldAS3/trunk";然後設定 Ant Targets,若 target name 有空白,記得用 雙引號 夾起來 "compile flex project";然後就可以儲存。

回到專案介面,便可手動進行 "馬上建構",然後就會看到 建構失敗 ...$%&@#;根據執行畫面可得知是因為找不到 ant.bat,因此接下來要想辦法讓 Hudson 找得到 Ant。

4.
在 Hudson 設定中,可以設定 JDK 與 ANT,都採用自動下載安裝的方式,由 Oracle 與 Apache 下載最新版本,但當我設定完儲存後,卻無從得知 Hudson 何時會進行這項作業。

我以為當我重新手動建構專案時,它會自動下載,看來沒有,依舊建構失敗。

我以為重新開 Hudson CI Server 時,它會自動下載,看來沒有,Server 一下就開好了,專案依舊建構失敗。

說不定會是在 "自動建構" 的時候發生,我沒測~

總之,我先自行下載安裝 apache-ant-1.8.2-bin.zip,並設定好電腦系統環境變數 JAVA_HOME 與 ANT_HOME,然後回到 Hudson 重新啟動後,手動建構便成功了!

5.
再進入到 Hudson 的 HelloWorld 專案設定中,我增加建構排程的設定 Build Triggers,勾選 Build periodically 並設定 Schedule 為 "*/5 * * * *",表示每隔 5 分鐘就建構一次,儲存後,耐心等待一陣子,便可看到歷史紀錄。





總結,至此,簡單的建構流程 OK,可自動進行 daily build 的機制,接下來可研究的方向:

* build trigger 的部分,可考慮與 SVN 整合,有 commit 檔案就可 build code。
* UnitTest 的作法應不至於太複雜,不過要結合 FlexUnit 有點麻煩之處在於 Flash Builder 4 Standard 版本沒預設支援,恭喜有使用 Flash Builder 4.5 的朋友們,不是 Standard 版~
* GUI Test 的部分,會是最困難的地方,先不討論策略上要測些甚麼,就技術的角度來看可能會參考 FlexMonkey 來產生測試用的 Task;開發環境測過後再來與 Hudson 整合測測看是否能完成自動測試。
* 另外可看看 Hudson 的視覺化 Report、與通知系統、以及 build code 成功後的自動 depoly 系統 (傳至 SVN 或 FTP)。

還有很長的路要走~

沒有留言: