文章目錄
- Jenkins 介紹(一)
- Jenkins 下載安裝(二)
- Jenkins 系統(tǒng)配置(三)
- Jenkins 用戶權(quán)限問題(四)
- Jenkins 項(xiàng)目配置(五)
- Jenkins 參數(shù)化構(gòu)建(六)
Jenkins 簡(jiǎn)介
Jenkins is a self-contained, open source automation server which can be used to automate all sorts of tasks such as building, testing, and deploying software. Jenkins can be installed through native system packages, Docker, or even run standalone by any machine with the Java Runtime Environment installed.
Jenkins是一個(gè)獨(dú)立的開源自動(dòng)化服務(wù)器朽褪,可以用來自動(dòng)化阅懦,例如構(gòu)建、測(cè)試和部署軟件等各種任務(wù)掏击。Jenkins可以通過本地系統(tǒng)包携冤、Docker安裝遥诉,甚至可以在安裝Java運(yùn)行時(shí)環(huán)境的機(jī)器上獨(dú)立運(yùn)行。
Jenkins is a continuous integration system which is very easy to setup and quickly comes into action. It has a nice dashboard. Jenkins can be downloaded from http://jenkins-ci.org. Jenkins comes with a set of plugins which can be enabled from the Jenkins dashboard itself.
Continuous Integration system are very important for any Software development environment. They are like running health stats of your various projects. Jenkins supports all major Source code Management tools like CVS, Subversion, Git. The builds can be configured and can run based on cron rules. Jenkins can automatically fetch the source code and than fire the builds. It has integrated support to Ant and Maven. With it's plugin based infrastructure it can handle various kinds of build system.
Some of the important tasks a Continuous Integration system (CI System) does:
Check out the source code from given Source Code Control Systems (SCM)
Build the artifacts based on provided build instructions.
Run the test cases to determine the sanity of build.
Archive the artifacts at a configured location.
Deploys the artifacts on servers.
Send status mails to various stakeholders
Maintain the metrics of builds along timeline.
And last but not the least, it will provide you with a sense of quality of software products on continuous basis.
持續(xù)集成系統(tǒng)(CI系統(tǒng))的一些重要任務(wù)是:
從給定的源代碼控制系統(tǒng)中查看源代碼(SCM)
根據(jù)提供的構(gòu)建指令構(gòu)建工件噪叙。
運(yùn)行測(cè)試用例來確定構(gòu)建的完整性矮锈。
將工件歸檔到配置的位置。
在服務(wù)器上部署工件睁蕾。
發(fā)送狀態(tài)郵件到不同的涉眾
在時(shí)間軸上維護(hù)構(gòu)建的度量標(biāo)準(zhǔn)苞笨。
最后债朵,它將為您提供持續(xù)的軟件產(chǎn)品的質(zhì)量意識(shí)。
Jenkins 歷史
Jenkins的前身是Hudson (軟件)項(xiàng)目瀑凝。Hudson 2004年夏天始創(chuàng)于Sun Microsystems序芦,2005年2月首次發(fā)布于java.net。[4]
2007年前后粤咪,Hudson被稱為相對(duì)CruiseControl和其他開源的構(gòu)建服務(wù)器(Build Server)更好的選擇谚中。[2]
[5]2008年5月的JavaOne大會(huì)上,Hudson成為“Duke選擇獎(jiǎng)”開發(fā)人員解決方案分類的得主寥枝。[6]
在2010年11月宪塔,關(guān)于由誰主導(dǎo)來Hudson[7]
,該項(xiàng)目的主要貢獻(xiàn)者和Oracle之間展開談判囊拜。盡管在多個(gè)方面達(dá)成一致某筐,爭(zhēng)議集中在是否把Hudson注冊(cè)為商標(biāo)[8]
,后來Oracle聲明對(duì)Hudson的名字擁有權(quán)利冠跷,并在2010年12月申請(qǐng)將其注冊(cè)為商標(biāo)南誊。[9]
因此,2011年1月11日蜜托,社區(qū)號(hào)召投票將項(xiàng)目名稱從“Hudson”變更為“Jenkins”抄囚。[10]2011年1月29日,社區(qū)投票以壓倒多數(shù)批準(zhǔn)通過該提案橄务,創(chuàng)建Jenkins項(xiàng)目怠苔。[11]
[12]2011年2月1日,Oracle表示他們打算繼續(xù)Hudson的開發(fā)仪糖,并認(rèn)為Jenkins是Hudson的復(fù)刻柑司,而非重命名。[13]
Jenkins和Hudson之后繼續(xù)作為兩個(gè)獨(dú)立的項(xiàng)目锅劝,均聲稱對(duì)方是自己的復(fù)刻攒驰。截至2013年12月,在GitHub上的Jenkins組織有567項(xiàng)目成員及約1100公共庫(kù)(public repository)[14]
故爵,而Hudson組織有32個(gè)項(xiàng)目成員和17個(gè)公共庫(kù)[15]
玻粪。在2011年,創(chuàng)建者川口耕介收到了O'Reilly開源獎(jiǎng)诬垂,獎(jiǎng)勵(lì)其在Hudson/Jenkins項(xiàng)目上的工作劲室。2014年,川口耕介成為CloudBees的首席技術(shù)官结窘。
總結(jié):Jenkins是一個(gè)開源項(xiàng)目很洋,提供了一種易于使用的持續(xù)集成系統(tǒng),使開發(fā)者從繁雜的集成中解脫出來隧枫,專注于更為重要的業(yè)務(wù)邏輯實(shí)現(xiàn)上喉磁。同時(shí)Jenkins能實(shí)現(xiàn)監(jiān)控集成中存在的錯(cuò)誤谓苟,提供詳細(xì)的日志文件和提醒功能,還能用圖表的形式形象地展示項(xiàng)目構(gòu)建的趨勢(shì)和穩(wěn)定性协怒。Jenkins的前身是Hudson涝焙,是一個(gè)可擴(kuò)展的持續(xù)集成引擎。