前言
眾所周知,Hudson一直以來(lái)都被認(rèn)為是JAVA平臺(tái)流行,使用得廣泛的開(kāi)源持續(xù)集成系統(tǒng)了,它以其人性化的界面功能,豐富的插件,高度的可擴(kuò)展性,強(qiáng)大的分布式構(gòu)建能力贏得了廣泛稱(chēng)贊。
然而,正是因?yàn)镠udson在JAVA業(yè)界表現(xiàn),使得國(guó)內(nèi)很少有人對(duì)它在其他語(yǔ)言領(lǐng)域的表現(xiàn)有所了解。其實(shí)Hudson本質(zhì)上只是一個(gè) CI(continuous-integration)系統(tǒng),通過(guò)其豐富的插件和高度的擴(kuò)展能力,它同樣可以在其他眾多的語(yǔ)言領(lǐng)域有著優(yōu)異的表現(xiàn),昨天正好為我們組的Ruby頁(yè)面自動(dòng)化測(cè)試腳本搭建了Hudson的持續(xù)集成環(huán)境,所以這里簡(jiǎn)單談一下我是如何做到的。
搭建Hudson的windows client
要做Ruby頁(yè)面自動(dòng)化的測(cè)試,目前的解決方案是使用開(kāi)源框架——Watir,而Watir只能運(yùn)行在windows環(huán)境下,而我們的Hudson 服務(wù)器是搭建在Linux環(huán)境的,難道要再部署一臺(tái)windows環(huán)境下的Hudson服務(wù)么?不,再部署一臺(tái)只會(huì)帶來(lái)管理的混亂,我想到了使用 Hudson的分布式構(gòu)建的功能,
分布式構(gòu)建是Hudson非常重要的特性之一,這一特性讓Hudson有能力管理數(shù)量龐大的項(xiàng)目,這些項(xiàng)目在構(gòu)建(包括編譯,測(cè)試,打包,部署等)可以利用分布式的特性分別在不同的client上運(yùn)行,同時(shí)Hudson還提供了豐富的對(duì)這些client進(jìn)行管理的功能,包括資源監(jiān)控,以及環(huán)境變量設(shè)置等等。
OK,說(shuō)了很多廢話(huà),其實(shí)是想讓大家了解一下為什么我要用這種方式。下面開(kāi)始是方法:
前提:client機(jī)器已經(jīng)可以獨(dú)立的運(yùn)行ruby頁(yè)面自動(dòng)化測(cè)試腳本
步驟:
1. 進(jìn)入頁(yè)面:在要配置的client機(jī)器上,進(jìn)入Hudson的nodes界面,一般連接為xxx/ hudson/computer/
2. 新建節(jié)點(diǎn):點(diǎn)擊左側(cè)“新建節(jié)點(diǎn)”,輸入節(jié)點(diǎn)名稱(chēng),選中Dumb Slave,后點(diǎn)擊OK,如下圖所示:
3. 節(jié)點(diǎn)配置,如下圖:
配置完成,點(diǎn)擊“Save”。