ThoughtWorks Go基本概念

來源:互聯網
上載者:User

標籤:style   http   color   io   os   使用   ar   strong   檔案   

寫在前面:當前最流行的持續整合工具非jenkins莫屬,已使用jenkins一年有餘,想嘗試下別的CI工具,如ThoughtWorks Go,且在嘗試時做主要記錄並分享,這是首先介紹下基本概念......

ThoughtWorks Go 是 ThoughtWorks 公司的一款持續整合和發布的系統。
它用一個創新的方法來管理構建、測試和發布過程。
其前身為CruiseControl(ThoughtWorks開發的第一個CI伺服器)。

Go是以“部署流水線”為核心的,下面是一個來自Go官網的流水線(pipeline)案例:

涉及到的基本概念有:pipeline(流水線)、stage(階段)、job(作業)

表示的是一個產品從代碼提交(check in)到UAT測試的流水線(pipeline)。

  • 版本控制系統(Version Control System,即VCS),如svn、git、hg等中的代碼修改後可以通過post commit hook觸發這個流水線。

  • 一個pipeline包含一個或多個stage,stage是串列的。
    這個流水線(pipeline)有三個階段(stage):編譯+單元測試階段(compile+unit test stage)、功能測試階段(functional test stage)、使用者驗收測試階段(UAT stage)。

  • 一個stage包含一個或多個job,job是並行的。
    其中編譯+單元測試階段(compie+unit test stage)包含單元測試作業(unit test job)和代碼測試覆蓋率檢查作業(emma job)。

  • 此外,pipeline可以分組,可以把多個pipeline放到一個pipeline group中。

對紅色StageJob做下翻譯:

階段(Stage):

  • 階段是連續啟動並執行

  • 每個階段可以被前一個階段完全運行成功後自動觸發

  • 也可以手動觸發

作業(Job)

  • 作業可以在階段中並發運行

  • 如果一個作業失敗了,這個階段的狀態就是失敗的

  • 每個作業計劃運行一個或多個目標(target),如ant、nant等等

  • 如果有多個Go Agent,一個階段的作業可以並行

Go的架構設計:

Go使用了Server-Agent模式,Server用來展示和配置pipeline的DashBoard,並存放構建出來的Artifacts(封存檔案,比如一個war包); Agent則用來執行真正的構建操作,一個Server可以和多個Agent建立串連,Agent支援多個主流的作業系統。

這個和jenkins的Master-slave架構模式有些類似。

參考:http://www.thoughtworks.com/products/docs/go/current/help/conceptsingo.html


ThoughtWorks Go基本概念

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.