日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

django 集成个推_持续集成CircleCI vs Travis CI vs Jenkins

發(fā)布時(shí)間:2025/3/11 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django 集成个推_持续集成CircleCI vs Travis CI vs Jenkins 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Continuous Integration. CircleCI vs Travis CI vs Jenkins?hackernoon.com

持續(xù)集成(CI)的定義及其主要目標(biāo)

持續(xù)集成(CI)是一種軟件開發(fā)實(shí)踐,它基于將代碼頻繁集成到共享代碼倉中。 然后通過自動(dòng)構(gòu)建(automated build)驗(yàn)證每個(gè)簽入(Check-In)。

持續(xù)集成(CI)的主要目標(biāo)是更早,更容易地識(shí)別開發(fā)過程中可能出現(xiàn)的問題。 如果定期集成 - 在查找錯(cuò)誤時(shí)檢查的次數(shù)要少得多。 這樣可以減少調(diào)試時(shí)間,增加功能時(shí)間。 還有一個(gè)選項(xiàng)可以設(shè)置代碼樣式的檢查,代碼復(fù)雜度(低復(fù)雜性使測(cè)試過程更簡單)和其他檢查。 這有助于最大限度地減少負(fù)責(zé)代碼審查的人員的工作量,節(jié)省時(shí)間并提高代碼質(zhì)量

它如何工作

  • 開發(fā)人員在其本地計(jì)算機(jī)上檢查代碼
  • 完成后 - 他們將代碼變更提交到代碼倉
  • 代碼倉向CI系統(tǒng)發(fā)送請(qǐng)求(webhook)
  • CI服務(wù)器運(yùn)行任務(wù)(測(cè)試,覆蓋率,檢查語法等)
  • CI服務(wù)器發(fā)布已保存的工件(artifacts)以進(jìn)行測(cè)試
  • 如果構(gòu)建或測(cè)試失敗,CI服務(wù)器會(huì)向團(tuán)隊(duì)發(fā)出警報(bào)
  • 該團(tuán)隊(duì)解決了這個(gè)問題

CircleCI vs Travis CI vs Jenkins

現(xiàn)在,當(dāng)持續(xù)集成的過程明確時(shí)(我希望如此),我們可以轉(zhuǎn)向現(xiàn)在一些最流行的CI平臺(tái)的比較。 每個(gè)都有其優(yōu)點(diǎn)和缺點(diǎn)。 讓我們從CircleCI開始吧。

CircleCI

Features :

  • CircleCI是一個(gè)基于云的系統(tǒng) - 不需要專用服務(wù)器,您無需管理它。 但是,它還提供了一個(gè)本地解決方案,允許您在私有云或數(shù)據(jù)中心中運(yùn)行它。
  • 即使是商業(yè)帳戶,它也有免費(fèi)計(jì)劃
  • Rest API - 您可以訪問項(xiàng)目,構(gòu)建和工件(artifacts)。構(gòu)建的結(jié)果將是工件或工件組。 工件可以是已編譯的應(yīng)用程序或可執(zhí)行文件(例如,android APK)或元數(shù)據(jù)(例如,關(guān)于測(cè)試`成功的信息)
  • CircleCI 緩存必要的安裝(requirements installation)。 它會(huì)檢查第三方依賴項(xiàng),而不是持續(xù)安裝所需的環(huán)境
  • 您可以觸發(fā)SSH模式訪問容器并進(jìn)行自己的調(diào)查(如果出現(xiàn)任何問題)
  • 這是一個(gè)完整的開箱即用解決方案,需要最少的配置調(diào)整

CircleCI與以下產(chǎn)品兼容:

  • Python,Node.js,Ruby,Java,Go等
  • Ubuntu(12.04,14.04),Mac OS X(付費(fèi)賬戶)
  • Github,Bitbucket
  • AWS,Azure,Heroku,Docker,專用服務(wù)器
  • Jira,HipChat,Slack

CircleCI優(yōu)點(diǎn):

  • 快速啟動(dòng)
  • CircleCI有一個(gè)免費(fèi)的企業(yè)項(xiàng)目計(jì)劃
  • 這很容易,也很快開始
  • 輕量級(jí),易讀的YAML配置
  • 您不需要任何專用服務(wù)器來運(yùn)行CircleCI

CircleCI缺點(diǎn):

  • CircleCI僅支持2個(gè)版本的Ubuntu免費(fèi)(12.04和14.04)和MacOS作為付費(fèi)部分
  • 盡管CircleCI可以使用并運(yùn)行所有語言,但tt僅支持“開箱即用”的以下編程語言:

Go(Golang),Haskell,Java,PHP,Python,Ruby / Rails,Scala

  • 如果您想進(jìn)行自定義,可能會(huì)出現(xiàn)一些問題:您可能需要一些第三方軟件來進(jìn)行這些調(diào)整
  • 此外,雖然作為基于云的系統(tǒng)是一方的優(yōu)勢(shì),它也可以停止支持任何軟件,你將無法阻止

Travis CI

Travis CI and CircleCI are almost the same

Both of them:

  • Have YAML file as a config
  • Are cloud-based
  • Have support of Docker to run tests

What does TravisCI offer that CircleCI doesn’t?

  • Option to run tests on Linux and Mac OS X at same time
  • Supports more languages out of the box:

Android, C, C#, C++, Clojure, Crystal, D, Dart, Erlang, Elixir, F#, Go, Groovy, Haskell, Haxe, Java, JavaScript (with Node.js), Julia, Objective-C, Perl, Perl6, PHP, Python, R, Ruby, Rust, Scala, Smalltalk, Visual Basic

  • Support of build matrix

Travis CI和CircleCI幾乎相同

他們都:

  • 將YAML文件作為配置
  • 是基于云的
  • 支持Docker運(yùn)行測(cè)試

TravisCI提供了一些CircleCI沒有的?

  • 可選擇在Linux和Mac OS X上同時(shí)運(yùn)行測(cè)試
  • 開箱即用支持更多語言:

Android,C,C#,C ++,Clojure,Crystal,D,Dart,Erlang,Elixir,F#,Go,Groovy,Haskell,Haxe,Java,JavaScript(帶Node.js),Julia,Objective-C,Perl,Perl6, PHP,Python,R,Ruby,Rust,Scala,Smalltalk,Visual Basic

  • 支持構(gòu)建矩陣

構(gòu)建矩陣

language: python python: - "2.7"- "3.4"- "3.5" env: - DJANGO='django>=1.8,<1.9'- DJANGO='django>=1.9,<1.10'- DJANGO='django>=1.10,<1.11'- DJANGO='https://github.com/django/django/archive/master.tar.gz' matrix: allow_failures:- env: DJANGO='https://github.com/django/django/archive/master.tar.gz'

構(gòu)建矩陣是一種工具,可以使用不同版本的語言和包運(yùn)行測(cè)試。 您可以以不同的方式自定義它。 例如,某些環(huán)境的失敗可以觸發(fā)通知但不會(huì)使所有構(gòu)建失敗(這對(duì)包的開發(fā)版本有幫助)

TOX

如果您更喜歡任何其他CI平臺(tái) - 總有一個(gè)選項(xiàng)可以使用Tox創(chuàng)建構(gòu)建矩陣。

[tox] envlist = py{27,34,35}-django{18,19,110,master} [testenv] deps = py{27,34,35}: -rrequirements/test.txtdjango18: Django>=1.8,<1.9django19: Django>=1.9,<1.10django110: Django>=1.10,<1.11djangomaster: https://github.com/django/django/archive/master.tar.gz commands = ./runtests.py [testenv:py27-djangomaster] ignore_outcome = True

Tox是一種通用的virtualenv管理和測(cè)試命令行工具。 您可以使用pip install tox或easy_install tox命令安裝它。

Travis CI優(yōu)點(diǎn):

  • 開箱即用構(gòu)建矩陣
  • 快速啟動(dòng)
  • 輕量級(jí)YAML配置
  • 開源項(xiàng)目的免費(fèi)計(jì)劃
  • 無需專用服務(wù)器

Travis CII缺點(diǎn):

  • 與CircleCI相比,價(jià)格更高,沒有免費(fèi)的企業(yè)計(jì)劃
  • 定制(對(duì)于某些你需要第三方的東西)

Jenkins

Features:

  • Jenkins是一個(gè)獨(dú)立的基于Java的程序,隨時(shí)可以運(yùn)行,包含Windows,Mac OS X和其他類Unix操作系統(tǒng)的軟件包
  • 憑借更新中心中的數(shù)百個(gè)插件,Jenkins幾乎集成了持續(xù)集成和持續(xù)交付工具鏈中的所有工具
  • Jenkins可以通過其插件架構(gòu)進(jìn)行擴(kuò)展,為Jenkins提供了幾乎無限的可能性
  • 各種工作模式:自由式項(xiàng)目(Freestyle project),管道(Pipeline),外部作業(yè)(External Job),多配置項(xiàng)目,文件夾,GitHub組織,多分支管道
  • Jenkins管道。這是一套插件,支持在Jenkins中實(shí)現(xiàn)和集成連續(xù)交付管道。 Pipeline提供了一組可擴(kuò)展的工具,用于通過Pipeline DSL“作為代碼”對(duì)簡單到復(fù)雜的交付管道進(jìn)行建模
  • 允許您啟動(dòng)具有各種條件的構(gòu)建。
  • 您可以使用Libvirt,Kubernetes,Docker等運(yùn)行Jenkins。
  • Rest API - 可以訪問控制您獲取的數(shù)據(jù)量,獲取/更新config.xml,刪除作業(yè),檢索所有構(gòu)建,獲取/更新作業(yè)說明,執(zhí)行構(gòu)建,禁用/啟用作業(yè)

Jenkins優(yōu)點(diǎn):

  • 價(jià)格(免費(fèi))
  • 定制
  • 插件系統(tǒng)
  • 完全控制系統(tǒng)

Jenkins缺點(diǎn):

  • 需要專用服務(wù)器(或多個(gè)服務(wù)器)。這導(dǎo)致額外的費(fèi)用。對(duì)于服務(wù)器本身,DevOps等...
  • 配置/定制所需的時(shí)間

結(jié)論

選擇什么CI系統(tǒng)? 這取決于您的需求以及您計(jì)劃使用它的方式。

CircleCI建議用于小型項(xiàng)目,其主要目標(biāo)是盡快開始集成。

當(dāng)您從事開源項(xiàng)目時(shí),建議使用Travis CI,這些項(xiàng)目應(yīng)在不同環(huán)境中進(jìn)行測(cè)試。

Jenkins被推薦用于大型項(xiàng)目,在這些項(xiàng)目中,您需要進(jìn)行大量自定義,這些自定義可以通過使用各種插件來完成。 您可以在這里更改幾乎所有內(nèi)容,但此過程可能需要一段時(shí)間。 如果您計(jì)劃使用CI系統(tǒng)最快的開始,Jenkins可能不是您的選擇。

總結(jié)

以上是生活随笔為你收集整理的django 集成个推_持续集成CircleCI vs Travis CI vs Jenkins的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。