Ⅰ 什麼是持續集成
集成是將更新的代碼合並或者提交到主幹源碼倉庫中。在這個合並或者提交的過程中,都伴隨著執行一系列的質量保證活動如代碼規范檢查、單元測試、安全掃描等來確保代碼的質量。
持續集成是在版本控制的基礎上,通過頻繁的代碼提交、自動化構建和單元測試加快集成周期和問題反饋速度,從而及時驗證系統可用性。為了保證後續的系統質量,在持續集成過程中,還會加入代碼規范掃描、安全漏洞掃描、集成測試等活動,用來保證代碼形成過程符合質量要求。持續集成的頻率達到每天多次、頻繁的集成,可以提前發現問題盡早解決沖突,使後續的持續集成更順暢。
Ⅱ 持續集成工具有哪些
市場上持續集成工具眾多,找到一個合適的工具並非易事,下面介紹了 21 個比較受歡迎的 CI 工具,並附上了下載鏈接。
1. Buddy
對 Web 開發者來說,Buddy 是一個智能的 CI/CD 工具,降低了 DevOps 的入門門檻。Buddy 使用 DeliveryPipeline 進去軟體構建、測試及發布,創建 Pipeline 時,100 多個就緒的操作可隨時投入使用,就像砌磚房一樣。
特點:
清晰的配置,友好的交互,15分鍾快速配置基於變更集(changeset)的快速部署構建運行在使用緩存依賴的獨立容器中支持所有流行的語言、框架和任務管理器Docker / Kubernetes 專用操作手冊與 AWS,Google,DigitalOcean,Azure,Shopify,WordPress 等集成支持並行和 YAML 配置下載鏈接:https://buddy.works
2. Jenkins
Jenkins 是一個開源的持續集成工具,使用 Java 編程語言編寫的。它有助於實時檢測和報告較大代碼庫中的單一更改。該軟體可幫助開發人員快速查找和解決代碼庫中的問題並自動測試其構建。
特點:
支持海量節點擴展並在節點中同等分發工作負載在各版本Linux、Mac OS 或 Windows 等全平台輕松更新提供了 WAR 格式的簡易安裝包,執行導入 JEE 容器中即可運行安裝可以通過 Web 界面輕松設置和配置 Jenkins可輕松跨機器分發下載鏈接:
https://jenkins.io/download/
3. TeamCity
TeamCity 是一款擁有很多強大功能的持續集成伺服器。
特點:
可擴展性和自定義為項目提供更好的代碼質量即使沒有運行構建,也能保持 CI 伺服器健康穩定可在 DSL 中配置構建項目級雲配置文件全面的 VCS 集成即時構建進度報告遠程運行和預先測試的提交下載鏈接:
https://www.jetbrains.com/teamcity/download/#section=windows
4. Travis CI
Travis 是一款流行的 CI 工具,可免費用於開源項目。在託管時,不必依賴任何平台。此 CI 工具為許多構建配置和語言提供支持,如 Node,PHP,Python,Java,Perl 等。
特點:
Travis 使用虛擬機構建應用程序可通過 Slack,HipChat,電子郵件等通知允許運行並行測試支持 Linux、Mac 以及 iOS易於配置,無需安裝強大的 API 和命令行工具下載鏈接:
https://github.com/travis-ci/travis-ci
5. GoCD
GoCD 是一個開源的持續集成伺服器。它可輕松模擬和可視化復雜的工作流程。此 CI 工具允許持續交付,並為構建 CD Pipeline 提供直觀的界面。
特點:
支持並行和順序執行,可以輕松配置依賴隨時部署任何版本使用 Value Stream Map 實時可視化端到端工作流程安全地部署到生產環境支持用戶身份驗證和授權保持配置有序有大量的插件增強功能活躍的社區幫助和支持下載鏈接:
https://www.gocd.org/download/
6. Bamboo
Bamboo 是一個持續集成的構建伺服器,可以自動構建、測試和發布,並可與 JIRA 和 Bitbucket 無縫協作。Bamboo 支持多語言和平台,如 CodeDeply、Ducker、Git,SVN、Mercurial、AWS 及 Amazon S3 bucket。
特點:
可並行運行批量測試配置簡單分環境許可權功能允許開發人員和 QA 部署到他們的環境可以根據 repository 中檢測到的更改觸發構建,並從 Bitbucket 推送通知可託管或內部部署促進實時協作並與 HipChat 集成內置 Git 分支和工作流程,並自動合並分支下載鏈接:
https://www.atlassian.com/software/bamboo
7. Gitlab CI
GitLab CI 是 GitLab 的一部分。它是一個提供 API 的 Web 應用程序,可將其狀態存儲在資料庫中。GitLab CI 可以管理項目並提供友好的用戶界面,並充分利用 GitLab 所有功能。
特點:
GitLab Container Registry 是安全的 Docker 鏡像注冊表GitLab 提供了一種方便的方法來更改 issue 或 merge request 的元數據,而無需在注釋欄位中添加斜杠命令為大多數功能提供 API,允許開發人員進行更深入的集成通過發現開發過程中的改進領域,幫助開發人員將他們的想法投入生產可以通過機密問題保護您的信息安全GitLab 中的內部項目允許促進內部存儲庫的內部 sourcing下載鏈接:
https://about.gitlab.com/installation/
8. CircleCI
Circle CI 是一個靈活的 CI 工具,可在任何環境中運行,如跨平台移動應用程序、Python API 伺服器或 Docker 集群,該工具可減少錯誤並提高應用程序的質量。
特點:
允許選擇構建環境支持多語言及平台,如Linux,包括C ,Javascript,NET,PHP,Python 和 Ruby支持 Docker,可以配置自定義環境觸發較新的構建時,自動取消排隊或正在運行的構建跨多容器分割和平衡測試,以減少總體構建時間禁止非管理員修改關鍵項目配置通過發送無錯誤的應用程序提高 Android 和 iOS 商店評級最佳緩存和並行性能,實現高性能與 VCS 工具集成下載鏈接:https://circleci.com/
9. Codeship
Codeship 是一個功能強大的 CI 工具,可自動化開發和部署工作流程。Codeship 通過簡化到 repository 的 push 來觸發自動化工作流程。
特點:
可完全控制 CI 和 CD 系統的設計。集中的團隊管理和儀錶板輕松訪問調試版本和 SSH,有助於從 CI 環境進行調試可完全定製和優化 CI 和 CD 工作流程允許加密外部緩存的 Docker 鏡像允許為您的組織和團隊成員設置團隊和許可權有兩個版本1)Basic 和 2)Pro下載鏈接:https://codeship.com/
10. Buildbot
Buildbot 是一個軟體開發 CI,可以自動完成編譯/測試周期。它被廣泛用於許多軟體項目,用以驗證代碼更改。它提供跨平台 Job 的分布式並行執行。
特點:
為不同體系結構的多個測試主機提供支持。報告主機的內核崩潰維護單源 repository自動化構建每個提交都在集成機器上的主線上構建自動部署開源下載鏈接:https://buildbot.net/
11. Nevercode
Nevercode 是一個基於雲端的 CI 傳送伺服器,可以構建、測試和分發應用程序而無需人工交互。此 CI 工具自動為每個提交構建項目,並在模擬器或真實硬體上運行所有單元測試 或 UI 測試。
特點:
基於雲服務,因此無需維護伺服器易於學習和使用良好的文檔,易於閱讀和理解通過持續集成和交付自動化整個開發過程與眾多工具集成下載鏈接:https://nevercode.io/
12. Integrity
Integrity 是一個持續集成伺服器,僅適用於 GitHub。在此 CI 工具中,只要用戶提交代碼,它就構建並運行代碼。它還會生成報告並向用戶提供通知。
特點:
目前僅適用於 Git,但它可以輕松地映射其他 SCM支持多通知機制,如 AMQP,電子郵件,HTTP,Amazon SES,Flowdock,Shell 和 TCPHTTP 通告功能將以 HTTP POST 請求發送到特定URL下載鏈接:
http://integrity.github.io/
13. Strider
Strider 是一個開源工具,用 Node.JS / JavaScript 編寫。它使用 MongoDB 作為後端存儲。因此,MongoDB 和 Node.js 對於安裝此 CI 至關重要。該工具為不同的插件提供支持,這些插件可修改資料庫 schema 並注冊HTTP路由。
特點:
Strider 可與 GitHub,BitBucket,Gitlab 等集成。允許添加鉤子來執行構建操作持續構建和測試軟體項目與 GitHub 無縫集成發布和訂閱 socket 事件支持創建和修改 Striders 用戶界面強大的插件,定製默認功能支持 Docker下載鏈接:
https://github.com/Strider-CD/strider
14. AutoRABIT
AutoRABIT 是一個端到端的持續交付套件,可以加快開發過程。它簡化了完整的發布流程,並可以幫助任何規模的組織實現持續集成。
特點:
專門設計用於在 Salesforce Platform 上部署支持基於 120 多種元數據類型的更改,實現精簡和快速部署從版本控制系統獲取更改並自動部署到 Sandbox 中直接從 Sandbox 自動向版本控制系統提交更改下載鏈接:
http://www.autorabit.com/tag/autorabit-download/
15. FinalBuilder
FinalBuilder 是 VSoft 的構建工具。使用 FinalBuilder,無需編輯 XML 或編寫腳本。在使用 Windows 調度程序調度構建腳本時,可以定義和調試構建腳本,或者與 Jenkins,Continua CI 等集成。
特點:
以邏輯結構化的圖形界面呈現構建過程使用 try 和 catch 操作處理本地錯誤與 Windows 調度服務緊密集成,支持定時構建支持十幾個版本控制系統提供腳本支持構建過程中所有操作的輸出都將定向到構建日誌下載鏈接:
https://www.finalbuilder.com/downloads/finalbuilde
16. Wercker
Wercker 是一個 CI 工具,可自動構建和部署容器。它可以創建可以通過命令行界面執行的自動化管道。
特點:
與 GitHub 和 Bitbucket 完全集成使用 Wercker CLI 進行更快的本地迭代同時執行構建以保持團隊的機動運行並行測試以減少團隊的等待時間集成了 100 多種外部工具通過產品和電子郵件接收系統通知下載鏈接:http://www.wercker.com/
17. Buildkite
Buildkite 代理是一個可靠的跨平台構建工具。此 CI 工具可以在礎架構上輕松地運行自動構建。它主要用於運行構建 Job,報告 Job 的狀態代碼並輸出日誌。
特點:
可在各種操作系統和體系結構上運行可以從任何版本控制系統運行代碼允許在計算機上運行任意數量的構建代理可與 Slack,HipChat,Flowdock,Campfire 等工具集成永遠不會讀取源代碼或密鑰提供穩定的基礎設施下載鏈接:https://buildkite.com/
18. Semaphore
Semaphore 是一個持續集成工具,只需按一下按鈕即可測試和部署代碼。它支持多種語言、框架並可與 GitHub 集成,還可以執行自動測試和部署。
特點:
配置簡單允許自動並行測試市場上最快的 CI 之一可以輕松覆蓋不同大小的項目數量與 GitHub 和 Bitbucket 無縫集成下載鏈接:https://semaphoreci.com
19. CruiseControl
CruiseControl 既是 CI 工具又是一個可擴展的框架。它用於構建自定義連續的構建。它有許多用於各種源代碼控制的插件,包括針對電子郵件和即時消息的構建技術。
特點:
與許多不同的源代碼控制系統集成,如 vss,csv,svn,git,hg,perforce,clearcase,filesystem 等允許在單個伺服器上構建多個項目與其他外部工具集成,如 NAnt,NDepend,NUnit,MSBuild,MBUnit 和 Visual Studio支持遠程管理下載鏈接:
http://cruisecontrol.sourceforge.net/download.html
20. Bitrise
Bitrise 是一個持續集成和交付 PaaS,它可以為整個團隊提供移動持續集成和交付。它允許與 Slack,HipChat,HockeyApp,Crashlytics 等許多流行服務集成。
特點:
允許在終端中創建和測試工作流程無需手動控制即可獲得應用程序每個構建在其自己的虛擬機中單獨運行,並且在構建結束時丟棄所有數據支持第三方 beta 測試和部署服務支持 GitHub Pull Request下載鏈接:
https://github.com/bitrise-io/bitrise#install-and-setup
21. UrbanCode
IBM UrbanCode 是一個 CI 應用程序。它將強大的可見性,可追溯性和審計功能整合到一個軟體包中。
特點:
通過自動化,可重復的部署流程提高軟體交付頻率減少部署失敗簡化多渠道應用程序的部署,無論是在本地還是在雲中,都可以部署到所有環境企業級安全性和可擴展性混合雲環境建模拖放自動化下載鏈接:
https://www.ibm.com/ms-en/marketplace/application-release-automation