Hudson:持續整合工具的安裝、使用

cloudcoder發表於2016-05-13

Hudson簡介 
http://hudson-ci.org 

    以其強大的功能和易用的介面征服了大量的使用者,它與主流的構建工具、版本控制系統以及自動化測試框架都能進行很好的整合。 

    很多組織和公司選擇它作為自己的持續整合工具,如 
http://hudson.jboss.org/hudson 
https://grid.sonatype.org/ci/

    Hudson還有一個優秀之處就是它提供了靈活的外掛擴充套件框架,大量開發者基於這種機制對Hudson進行了擴充套件。

安裝Hudson 
    注意:Hudson必須執行在JRE1.6或更高的版本上,安裝時需要聯網 

    Hudson only needs a Java 6 or newer runtime. An internet connection will be required if you want to be able to install and auto-update plug-ins 
http://hudson-ci.org/

    安裝Hudson有兩種方式: 

    方式一:直接執行war(This is mostly useful for testing purposes) 

        1:下載hudson-3.0.0.war 

        2:啟動Hudson的方式是在命令列直接執行hudson.war 

            $cd /opt/maven 

            $java -jar hudson-3.0.0.war 

            $java -jar hudson-3.0.0.war –httpPort=8082 

        3:啟動完成之後,在瀏覽器位址列輸入:http://localhost:8082/訪問Hudson介面 

    方式二:安裝rpm(For production we recommend using native packages for simplified install ) 

        1:下載hudson-3.0.0-1.1.noarch.rpm 

        2:安裝rpm 

        3:執行如下命令(需要root使用者操作) 

            cd /opt/maven 

            rpm -ivh hudson-3.0.0-1.1.noarch.rpm 

            /etc/init.d/hudson start

            nohup /etc/init.d/hudson start > /opt/maven/hudson_start.log 2>&1 &

            檢視hudson程式 

            ps -ef|grep hudson.war 

        4:啟動完成之後,在瀏覽器位址列輸入:http://localhost:8080/訪問Hudson介面 

        此rpm包做了如下工作: 

            Hudson will be launched as a daemon up on start. See /etc/init.d/hudson for more details. 

            The hudson user is created to run this service. 

            Log file will be placed in /var/log/hudson/hudson.log. Check this file if you are troubleshooting Hudson.

    因為Hudson was written to work on unix-like platforms,所以不建議在windows上面安裝,如果安裝,則需要先UnxUtils 

    具體參見:http://wiki.eclipse.org/Hudson-ci/Installing_Hudson

    開啟http://172.168.27.70:8080/頁面後,根據需要安裝外掛,如果選擇的很多,將需要很久的時間 

    如果全部安裝後,點選finished

    hudson系統配置 

    進行系統管理–系統配置,配置JDK 

    JDK安裝: 

    JDK-1.6  /usr/java/jdk1.6.0_33

    全域性MAVEN_OPTS 

    -Xms128M 

    -Xmx512M

    如果開啟系統配置報: 

    Problem accessing /checkURIEncoding. Reason:  Tried to read incomplete UTF8 decoded String

    此問題在IE下存在,而在firefox下面不存在,請使用firefox瀏覽器

 

建立Hudson任務 
    任務型別選擇:構建一個自由風格的軟體專案(Build a free-style software project) 

        不僅支援Maven專案,還支援其他型別的構建工具,如Ant、Shell 

        而對於Maven使用者來說,兩者最大的不同在於前者需要使用者進行多一點配置,而後者會使用Hudson自帶的Maven,且從專案的POM中獲取足夠的資訊以免 

        去一些配置。 

        推薦使用free-style型別,這種方式更可控制,當任務出現問題的時候也更容易檢查。 

        1:首先是專案的名稱和描述 

        2:Discard Old Builds.該選項配置如何拋棄舊的構建。因為Hudson每執行一次構建任務,就可以儲存相應的原始碼、構建輸出、構建報告等檔案。 

            Days to keep builds 

            Max # of builds to keep 

        3:專案使用的JDK配置,這裡可以選擇的JDK就是使用者在系統設定中預定義好的JDK(當前僅僅配置了一個,不用配置) 

        以上三項為基本配置

        Hudson任務的原始碼倉庫配置 

        4:Source Code Management 

            選擇Subversion 

            svn://172.168.9.101/account/trunk

            一般來說,該部分的其他選項保留預設值即可。 

        Hudson任務的構建觸發配置 

        5:Build Triggers 

            選擇poll SCM    週期性地輪詢原始碼倉庫,發現有更新的時候構建本專案,是最常用的構建觸發方式 

            使用了Cron任務排程工具進行配置,如10分鐘輪詢一次 

            */10 * * * *

        6:Hudson任務的構建配置 Build 

            告訴Hudson使用執行Maven命令構建專案。從Add build step選擇Maven3 

            選擇Maven Version(選擇bundle) 和 Goals如clean install

            clean install -Dmaven.test.failure.ignore 

            此引數配置構建命令忽略測試。這樣失敗的測試就不會導致構建失敗。即不穩定的構建,任務狀態為黃色。

        針對account專案,需要停斷郵件服務(佔用了25埠,而greenmail測試郵件繫結此埠) 

        ervice sendmail stop 

        chkconfig sendmail off

        任務執行時 

        hudson在 

        /var/lib/hudson/jobs/ 

        根據任務的名稱構建專案 

        hudson繫結的Maven倉庫地址是: 

        /var/lib/hudson/.m2/repository

        使用的使用者是hudson:hudson

        配置Maven專案測試報告: 

        Post-build Actions 

        選擇Publish JUnit test result report 

        Test report XMLs中輸入:**/target/surefire-reports/TEST-*.xml


相關文章