標籤: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中。
對紅色Stage和Job做下翻譯:
階段(Stage):
階段是連續啟動並執行
每個階段可以被前一個階段完全運行成功後自動觸發
也可以手動觸發
作業(Job)
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基本概念