我也算是 Tinderbox 的愛用者了,從難裝地要命的第一版、大幅改寫的 Tinderbox2、到最新的 Tinderbox3 我都玩過。John Keiser 設計的第三版架構上蠻不錯的,幾乎所有的客製化都只需要修改用戶端,只要會寫 Perl script 很快就可以上手修改成想要的樣子。

Tinderbox 主要的目的當然就是用來實現 Continuous Integration,因為我們的產品是同一份 code 必須同時編譯成在不同 Windows Mobile/Desktop 平台的執行碼,很容易就有人﹝其實是我﹞不小心 check-in 一份只能在某個平台上編譯成功的 code。例如下面這畫面就是有人不小心加入了在 Windows Desktop 不能成功編譯的 code:

我做的更改主要是是讓它可以偵測 Perforce 上的 check-in 動作,一旦有任何的更改,負責建置版本的機器馬上會醒過來為各個平台重新編譯最新的程式碼,如果一旦發現有任何編譯或是聯結的問題,它就會自動發信來提醒有嫌疑的更改者。另外一個小更改就是把 nightly build 的功能加上去,其實只是在每天深夜會自動醒來並重新編譯所有的 code,編譯成功後把可安裝的版本依日期放置到固定的地方,QA 就能夠每天拿到熱騰騰的版本來進行各種測試啦。

設置這些東西所需要花的時間及資源其實很少,但之後省下的麻煩就是讓我願意花時間從第一版試到第三版的最重要原因。