詹金斯在一個地方完整介紹
詹金斯:
Jenkins 是一個用 Java 編寫的開源持續整合工具。該專案是在與甲骨文發生爭執後從哈德森派出的。
簡而言之,Jenkins 是領先的開源自動化伺服器。它採用 Java 構建,提供數百個外掛,支援幾乎任何專案的構建,測試,部署和自動化。
特點: Jenkins 提供開箱即用的以下主要功能,還可以通過外掛新增更多功能:
易於安裝:只需執行 java -jar jenkins.war,將其部署在 servlet 容器中。沒有額外的安裝,沒有資料庫。喜歡安裝程式或本機包?我們也有這些。輕鬆配置:Jenkins 可以完全從其友好的 Web GUI 進行配置,具有廣泛的即時錯誤檢查和內聯幫助。豐富的外掛生態系統:Jenkins 幾乎整合了每個 SCM 或構建工具。檢視外掛。可擴充套件性:Jenkins 的大多數部分都可以擴充套件和修改,並且很容易建立新的 Jenkins 外掛。這允許你根據需要自定義 Jenkins。分散式構建:Jenkins 可以將構建/測試負載分配給具有不同作業系統的多臺計算機。為 OS X,Linux 和 Windows 構建軟體?沒問題。
安裝:
$ wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
$ sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
$ sudo apt-get update
$ sudo apt-get install jenkins
to do more refer link :
參考: https : //wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu
參考: http : //www.vogella.com/tutorials/Jenkins/article.html
參考: https : //wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins
JENKINS_HOME 目錄 Jenkins 需要一些磁碟空間來執行構建並儲存存檔。你可以從 Jenkins 的配置螢幕中檢視此位置。預設情況下,它設定為〜/ .jenkins,但你可以通過以下方式之一更改此設定:在啟動 servlet 容器之前,將“JENKINS_HOME”環境變數設定為新的主目錄。將“JENKINS_HOME”系統屬性設定為 servlet 容器。將 JNDI 環境條目“JENKINS_HOME”設定為新目錄。有關如何為容器執行此操作的詳細資訊,請參閱容器特定文件集合。你也可以在使用 Jenkins 一段時間後更改此位置。為此,請完全停止 Jenkins,將內容從舊的 JENKINS_HOME 移動到新的主頁,設定新的 JENKINS_HOME,然後重新啟動 Jenkins。
JENKINS_HOME
+- config.xml (jenkins root configuration)
+- *.xml (other site-wide configuration files)
+- userContent (files in this directory will be served under your http://server/userContent/)
+- fingerprints (stores fingerprint records)
+- plugins (stores plugins)
+- workspace (working directory for the version control system)
+- [JOBNAME] (sub directory for each job)
+- jobs
+- [JOBNAME] (sub directory for each job)
+- config.xml (job configuration file)
+- latest (symbolic link to the last successful build)
+- builds
+- [BUILD_ID] (for each build)
+- build.xml (build result summary)
+- log (log file)
+- changelog.xml (change log)
詹金斯建立工作:
在 Jenkins 中建立新的構建作業很簡單:只需單擊 Jenkins 儀表板上的新建作業選單項即可。Jenkins 支援幾種不同型別的構建作業,當你選擇建立新作業時,這些作業將呈現給你
自由式軟體專案
Freestyle 構建作業是通用構建作業,可提供最大的靈活性。
Maven 專案 “maven2 / 3 專案”是一個專門適用於 Maven 專案的構建工作。Jenkins 瞭解 Maven pom 檔案和專案結構,並且可以使用從 pom 檔案中收集的資訊來減少設定專案所需的工作。
工作流程
協調可以跨越多個構建從屬的長時間執行的活動。適用於建造管道和/或組織不易適應自由式工作型別的複雜活動。
監視外部作業監視外部作業構建作業使你可以密切關注非互動式程序,例如 cron 作業。
多配置作業多配置專案(也稱為矩陣專案)允許你在許多不同的配置中執行相同的構建作業。這個強大的功能可用於在許多不同的環境中測試應用程式,使用不同的資料庫,甚至在不同的構建機器上。
1.構建軟體專案(自由風格)
Jenkins 可用於執行典型的構建伺服器工作,例如執行連續/官方/夜間構建,執行測試或執行一些重複的批處理任務。這在詹金斯被稱為自由式軟體專案。設定專案轉到 Jenkins 首頁,選擇 New Job
,然後選擇“Build a free-style software project”。此作業型別包含以下元素:可選 SCM,例如原始碼所在的 CVS 或 Subversion。用於控制 Jenkins 何時執行構建的可選觸發器。某種構建指令碼執行構建(ant,maven,shell 指令碼,批處理檔案等),其中實際工作發生可選步驟以從構建中收集資訊,例如存檔工件和/或記錄 javadoc 和測試結果。
非源控制專案的構建有時需要僅為演示目的構建專案,或者無法訪問 SVN / CVS 儲存庫。通過選擇在原始碼管理下將專案配置為無,你必須:
- 至少構建一次專案,(它會失敗),但 Jenkins 將建立結構 jenkins / workspace / PROJECTNAME /
- 將專案檔案複製到 jenkins / workspace / PROJECTNAME /
- 再次構建並適當配置
詹金斯設定環境變數
當 Jenkins 作業執行時,它會設定一些你可以在 shell 指令碼,批處理命令,Ant 指令碼或 Maven POM 中使用的環境變數。單擊 ENVIRONMENT_VARIABLE 檢視變數列表
配置自動構建
可以定期觸發 Jenkins 中的構建(按計劃,在配置中指定),或者在檢測到專案中的源更改時觸發,或者可以通過請求 URL 自動觸發它們:
HTTP:// YOURHOST /詹金斯/工作/ PROJECTNAME /編譯
這允許你將 Jenkins 構建掛鉤到各種設定中。有關更多資訊(特別是在啟用安全性的情況下執行此操作),請參閱遠端訪問 API。
根據源更改構建
你可以讓 Jenkins 輪詢你的修訂控制系統以進行更改。你可以使用與 Unix / Linux 上的 crontab 相同的語法指定 Jenkins 輪詢修訂控制系統的頻率。但是,如果你的輪詢週期短於輪詢修訂控制系統所花費的時間,則每次更改最終可能會有多個版本。你應該將輪詢週期調整為長於輪詢修訂控制系統所花費的時間,或者使用提交後觸發器。你可以檢查每個構建的輪詢日誌,以檢視輪詢系統所需的時間。
或者,你可以使用 URL 觸發器(如上所述),但使用/ polling 而不是 URL 末尾的/ build,而不是按固定間隔進行輪詢。這使得 Jenkins 對 SCM 進行了輪詢,而不是立即構建。這可以防止 Jenkins 執行構建,而不會對影響與作業無關的模組或分支的提交進行相關更改。使用/輪詢時,必須配置作業以進行輪詢,但計劃可以為空。
通過電子郵件構建(sendmail)
如果你擁有系統的 root 帳戶並且使用的是 sendmail,我發現最容易調整/ etc / aliases 並新增以下條目:jenkins-foo:“| / bin / wget -o / dev / null
http:// YOURHOST / jenkins / job / PROJECTNAME / build “
然後執行 newaliases
命令讓 sendmail 知道更改。每當有人向“jenkins-foo @ yoursystem”傳送電子郵件時,都會觸發新版本。有關配置 sendmail 的更多詳細資訊,請參閱此處。通過電子郵件構建(qmail)使用 qmail,你可以按如下方式編寫/var/qmail/alias/.qmail-jenkins:| / bin / wget -o / dev / null http:// YOURHOST / jenkins / job / PROJECTNAME / build “
2.構建 Maven 專案
Jenkins 提供專門用於 Maven 2/3 的工作型別。這種工作型別將 Jenkins 與 Maven 2/3 深度整合,與更通用的自由式軟體專案相比,具有以下優勢。
Jenkins 解析 Maven POM 以獲取完成其工作所需的大量資訊。結果,配置量大大減少。
詹金斯聽取了 Maven 的執行情況,並確定了自己應該做什麼。例如,當 Maven 執行測試階段時,它將自動記錄 JUnit 報告。或者如果你執行 javadoc 目標,Jenkins 將自動記錄 javadoc。
Jenkins 自動在專案之間建立專案依賴項,這些專案之間宣告瞭 SNAPSHOT 之間的依賴關係。見下文。因此,大多數情況下,你只需要配置 SCM 資訊以及你希望執行的目標,Jenkins 將會找出其他所有內容。
此專案型別可以自動提供以下功能:
歸檔由構建生成的工件
釋出測試結果
觸發作為下游依賴項的專案的作業
將工件部署到 Maven 儲存庫
按模組分組測試結果
(可選)僅重建已更改的模組,從而加快構建速度
從模組依賴項自動構建連結
Jenkins 從你的 POM 讀取專案的依賴項,如果它們也構建在 Jenkins 上,則觸發器的設定方式使得其中一個依賴項中的新構建將自動啟動專案的新構建。Jenkins 瞭解 POM 中的各種依賴關係。即父母 POM
<dependencies> section of your project
<plugins> section of your project
<extensions> section of your project
<reporting> section of your project
此過程將版本考慮在內,因此你可以在同一個 Jenkins 上擁有專案的多個版本/分支,並且它將正確地確定依賴項。請注意,不支援依賴版本範圍,請參閱[ https://issues.jenkins-ci.org/browse/JENKINS-2787] [1 ] 。
可以按需禁用此功能 - 無論何時構建 SNAPSHOT 依賴關係,請參閱配置選項 Build
安裝:
1。進入 Manage Jenkins >>配置系統
- 在 maven 標籤中“點選 maven 安裝……
你可以讓 Jenkins 自動安裝特定版本的 Maven,或者提供本地 Maven 安裝的路徑(你可以根據需要為你的構建專案配置多個版本的 Maven,併為不同的專案使用不同版本的 Maven。如果勾選自動安裝核取方塊,Jenkins 將為你下載並安裝所請求的 Maven 版本,並將其安裝到 Jenkins 主目錄中的 tools 目錄中。
如何使用它
首先,你必須配置 Maven 安裝(如果你使用 DEV @ cloud,則可以跳過此步驟)。這可以通過進入系統配置螢幕(管理 Jenkins->配置系統)來完成。在“Maven 安裝”部分中,1)單擊新增按鈕,2)為其命名,例如“Maven 3.0.3”,然後 3)從下拉選單中選擇版本。
現在,Jenkins 將自動安裝此版本(例如,在任何新的構建機器上),從 Apache 下載並解壓縮。
建立一個新的 Maven 作業:
- 單擊左側的“新建作業/新專案”
- 給它起個名字
- 選擇“構建 Maven 2/3 專案”
- 儲存你的工作
現在你需要配置你的工作
-
選擇要使用的 SCM(例如使用 git)
-
選擇 maven 目標來呼叫
-
新增儲存庫 URL 和憑據。
-
檢查使用者私有 maven 回購:
你還可以定義相同的客戶路徑。
5。建設專案
現在單擊 build 來構建專案,然後單擊左側 Build Executor Status
中的進度條,觀察 jenkins 安裝 Maven,簽出專案,並使用 maven 構建它。
記錄:
https://wiki.jenkins-ci.org/display/JENKINS/Logging
指令碼控制檯:
用於故障排除,診斷或批量更新作業 Jenkins 提供了一個指令碼控制檯,可讓你訪問所有 Jenkins 內部。這些指令碼是用 Groovy 編寫的,你可以在這個頁面中找到它們的一些示例。