jenkins

sonar是一個用於代碼質量管理的開放平臺,經過插件機制,Sonar能夠集成不一樣的測試工具,代碼分析工具,java

  持續集成工具(Hudson/Jenkins)。node

sonar並非簡單的把不一樣的代碼檢查結果(FindBugs, PMD)顯示在web上,而是經過不一樣的插件對這些結果進行linux

  再加工處理,經過量化的方式來度量代碼質量的變化。web

sonar是Codehaus上的一個開源項目,自己是爲java設計,也能夠經過插件實現對其餘編程語言的支持。編程

 

Jenkins是一個開源軟件項目,是基於java開發的一種持續集成工具,用於監控持續重複的工做,windows

  持續,自動的構建/測試軟件項目瀏覽器

CI(持續集成)已經成爲當前不少軟件開發團隊在整個軟件開發週期內側重於保證代碼質量的常見作法。tomcat

  CI中的後起之秀,travis ci,也是一個開源的軟件,也有相應的商用軟件。app

jenkins的官網,http://Jenkins-ci.org/ 下載最新的war文件,ssh

jenkins的兩種啓動方法,(須要首先安裝有JDK,或者JRE環境) (java打包後的程序後綴.jar/.war)

  1) java -jar jenkins.war  --httpPort=8081,以後在瀏覽器輸入localhost:8081,localhost能夠是本機的ip,也能夠是計算機名,就能夠打開jenkins。

  2) 解壓tomcat到某個目錄下,進入tomcat下的bin目錄,啓動tomcat,將Jenkins.war文件放入tomcat的webapp目錄下,啓動tomcat時,會自動

    在wenapps目錄下創建Jenkins目錄,在地址欄輸入localhost:8081/jenkins來啓動。

 

Jenkins中的插件安裝有兩種方式,

  1) 插件官網,下載文件,而後把文件copy到Jenkins目錄下的plugins文件夾下,

  2) 在Jenkins下的插件管理界面,搜索,安裝。

Jenkins下的權限管理控制,能夠安裝Role-based Authoriztion Strategy。也能夠選擇Jenkins下自帶的受權控制。

    Access control,通常根據公司IT部署,設置ldap server。

  system config,能夠設置,build執行的單元(node)個數,使用策略,系統的環境變量。

Jenkins下新建job,涉及到源碼的管理,trigger的配置,構建的命令腳本

  源碼的管理,若是是svn,須要配置svn repo,credentials。

  trigger的配置,通常選擇period或者PollSCM,也能夠與其餘job交織,由其餘job trigger。(還有一個遠程構建,即經過遠程登陸等方式來觸發)

         period,一段時間以後,自動build job。

           Poll SCM,一段時間以後,若是代碼有更新,在build job。

  構建,linux下通常是sh腳本,windows下通常是bat腳本。

Jenkins下新建job的類型有幾種,frestyle,pipeline等,重點介紹pipeline,主要是能夠經過stage來進行分段的構建。

  pipeline的job,能夠經過代碼庫中的一個Jenkinsfile來完成job的部署,Jenkinsfile,有兩種書寫方式,Declarative Pipeline和Scripted Pipeline。

    pipeline中的幾個專用詞,agent/node-----區分執行節點, stage----區分業務場景,例如比較多的build,test,deploy。step-----具體的代碼執行。

    pipeline的語法介紹,https://jenkins.io/doc/book/pipeline/syntax/ 

    Declaration Pipeline是Jenkins Pipeline一種比較新的補充,用的較多。還有一些使用的語法選項,post的設置,options的設置。

      post是指對build處理以後的返回值的處理。build返回的狀態有fail,unstable,aborted等。

      options,能夠設置一些timeout,retry等。

      Declaration Pipeline中也能夠定義本身的enc和param。(經過安裝Pipeline的插件,能夠直接在Job頁面中,看到Pipeline Syntax,之間生成響應的腳本)    

    Pipeline的script 代碼能夠直接放在業務代碼中,經過checkout來實時配置jenkins,經過選項Pipeline script from SCM來實現。

 

https://blog.csdn.net/u011541946?t=1

https://blog.csdn.net/u011541946/article/category/7175041/1

 

須要安裝的插件,

1) svn,完成代碼訪問。

2) extendmail,build完成以後,郵件通知開發者,jenkins也有自帶mail插件。

  採用smtp協議來傳輸郵件,端口號默認25,

    smtp服務機器,IT部署的專門用來轉發email的machine。

    經過ssh端口映射到smtp server,再進行郵件的發送。

  extendmail,內部有不少global env,能夠直接在自定義的mail body中使用,來定值本身的郵件內容。

3) blueocean,美化界面。

4) Junit,處理build result。

  要求每一個build結束,以後,都要生成一個Junit format格式的xml文件,提供給Jenkins。

    http://help.catchsoftware.com/display/ET/JUnit+Format

  在配置過Jenkins以後,就能夠在Jenkins中看到每一個test的狀態,與xml中的信息相同。

 

jira與jenkins之間能夠相互集成,能夠實現,jenkins部署失敗的時候,自動往Jira上新增一條問題記錄。

                    jira bug狀態改變,自動觸發構建事件,來部署相應的jenkins build。

https://blog.csdn.net/boonya/article/details/77885170

相關文章
相關標籤/搜索