Promptcloud 探索 Gerrit 和 Jenkins 集成設置

已發表: 2017-01-20
目錄顯示
使用 Gerrit 和 Jenkins 進行集成設置
什麼是格瑞特?
什麼是 Jenkins 及其用途?
持續集成的工作流程
一、Gerrit的安裝
2. 初始登錄
3. SSH 密鑰生成
4.Jenkins的安裝
5.啟動Jenkins進程

使用 Gerrit 和 Jenkins 進行集成設置

重複和復雜的任務會使開發人員的生活變得有些單調。 值得慶幸的是,我們有工具可以定期處理平凡的任務,而一旦您設置它們就不會抱怨。 當您向測試和部署添加自動化時,該解決方案可以稱為“持續集成”。 這樣的設置可以自動測試和部署項目,讓您有更多時間專注於編寫代碼,而不是將代碼推送到服務器。 以下是使用 Gerrit 和 Jenkins進行持續集成設置的方法。 使用 Gerrit 和 Jenkins 設置 CI

什麼是格瑞特?

Gerrit 是一個基於 git 的開源代碼審查系統,具有基於 Web 的界面,可讓您從 git 客戶端推送更改、審查更改並自動與主代碼合併。 每次進行更改時,都會創建相同的補丁集。 Gerrit 允許不同的補丁集比較。 它還可以選擇在特定行或整個補丁上添加反饋或評論。 審閱者可以用以下之一對更改進行評分: +2 – 對我來說看起來不錯,已批准。 +1 - 對我來說看起來不錯,但其他人必須批准。 0 – 沒有得分。 -1 – 我希望你不提交這個。 -2 – 阻止提交。 +2 評論意味著代碼可以默認提交給主人。 這可以根據需要進行配置。

什麼是 Jenkins 及其用途?

Jenkins 是用於持續集成的流行構建服務器。 它是基於 Web 的,並允許在發生更改時自動構建過程。 Jenkins 可以獨立工作,即使沒有 Git 或 Gerrit。 它具有允許事件觸發器的鉤子,因此當發生更改時,會自動進行構建。 當 Jenkins 和 Gerrit 一起使用時,構建將有一個成功/失敗標記,以指示它們是否通過了測試。 Jenkins 將在執行構建後運行測試回歸。 完成後,它將像其中一位審閱者一樣發布測試結果。 如果構建失敗,它將拒絕補丁。 在測試失敗的情況下,您可以根據 CI 的質量設置 -1 或 -2。 與此同時,其他代碼審查者也可以在此時審查代碼。 如果所有的審查都通過了,代碼可以被推送到公共存儲庫

持續集成的工作流程

  1. 開發人員從 Git 簽出源代碼
  2. 開發人員進行所需的更改
  3. 開發人員將更改推送到 Gerrit
  4. Gerrit 向 Jenkins 發送變更通知進行集成測試
  5. Jenkins 直接從 Gerrit git 服務器中提取更改,並根據我們的項目配置運行所有測試用例
  6. 其他開發人員審查更改並批准 (+2)
  7. 當 Jenkins 通過構建並且更改得到其他開發人員的批准後,Gerrit 將更改合併到主項目 git 存儲庫

使用 Gerrit 和 Jenkins 工作流的集成設置 一、Gerrit的安裝

  • 要求:JRE,最低版本 1.8。
  • tGerrit 戰爭包下載鏈接

如果你有 MySQL,你可以將它用於 Gerrit 數據庫。 在 MySQL 中為 Gerrit 創建用戶和數據庫。

mysql> 創建用戶 'gerrit2'@'localhost' 由 'secret' 識別;

mysql> 創建數據庫 reviewdb;

mysql> GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';

mysql> 刷新權限;

現在運行以下命令來初始化站點。

 # java -jar gerrit.war init –batch -d ~/

在這個初始化過程中,gerrit 服務是默認啟動的。 如果您想進行任何更改,即 mysql 數據庫、登錄身份驗證、發送電子郵件服務器和 httpd url,您可以編輯~//etc/gerrit.config文件並在~ //etc/secure 中添加 ldap 和數據庫密碼詳細信息.config文件。 如果進行任何設置更改,必須重新啟動 gerrit 服務才能生效。

 # ~//bin/gerrit.sh 重啟

~//bin/gerrit.sh腳本作為 gerrit 複製到init.d目錄,並將其添加到機器啟動時啟動。

2. 初始登錄

現在在瀏覽器中加載您的 Gerrit URL。 您也可以使用此命令找到 Gerrit Web URL。

# git config -f ~//etc/gerrit.config gerrit.canonicalWebUrl

現在使用您在 Gerrit 配置文件中配置的方法使用登錄身份驗證登錄 Gerrit Web 界面。 默認情況下,它是 OpenID。 LDAP 是最常用的身份驗證方法之一。

成功登錄 Gerrit 網頁後,您必須登錄您將在其中進行開發的客戶端計算機。您必須為您的 ssh 會話生成 RSA 密鑰。 如果您已經擁有這些文件,則可以跳過密鑰生成步驟。

# ls -l ~/.ssh

authorized_keys 配置 id_rsa id_rsa.pub known_hosts

3. SSH 密鑰生成

# ssh-keygen -t rsa

生成公鑰/私鑰 rsa 密鑰對。

輸入保存密鑰的文件(/home/user/.ssh/id_rsa):

輸入密碼(無密碼為空):

再次輸入相同的密碼:

您的標識已保存在 /home/user/.ssh/id_rsa 中。

您的公鑰已保存在 /home/user/.ssh/id_rsa.pub 中。

關鍵指紋是:

SHA256:dMMVqsoLDf8T/d5Niob69oea3rkSLTBltiZ8s1lbdeA user@localhost

密鑰的 randomart 圖像是:

+—[RSA 2048]—-+

| o… |

| .+o . o|

| ..+=. E..|

| .=o=.. |

| . SB * o |

| = .. * o |

| . = 。 = 。 .|

| . ○。 +o++.+ |

| . o*=*噓。|

+—-[SHA256]—-+

# 貓 ~/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwoWTT6S1pv2LP0l6r8305njSLtoupDCw8Df
GnaqW+ppfzNMtRJmAvCQpYuvE154EsGZC5csnRkUYAScOD3nri8NBsXMdD+m1mMyD
lA4ssMLhWHfstJGQ5aJ84NIR+zFK9o9QmDCVYU/
MYt2SZnmzi+Pdd4QbDWKisewmtun5rpy8vXWukKt9CHGTbv5lKyRVPF
LuQCynKbniZLV7aQD6gsVcZFG7Hj3ezBhDAZdBrCWLldy0S61DAmdH5C94xmlSuraq
HiX0pkLi4J67msvOUW6dBfeCP1VsMNz0j/
91LPlOMf5I2r1fRw1s/J1z/
UcsgBDyATwSKocNklkrd8+pp user@localhost

  • 複製上述公鑰並轉到您的 gerrit 網址
  • 檢查網頁右上角的用戶名,然後單擊您的用戶以找到設置鏈接
  • 在左側,你可以找到“SSH Public Keys”,點擊它
  • 現在單擊“添加密鑰”按鈕,粘貼您的 ssh 公鑰並添加它

使用 Gerrit 和 Jenkins SSH 密鑰生成器的集成設置 第一個登錄和註冊帳戶的用戶將被自動置於完全特權的管理員中。 現在您擁有創建項目的權限。 單擊“項目”選項卡,然後單擊“創建新項目”。 現在輸入項目名稱開始。 CI 設置 你去那裡,在你的系統中克隆項目並開始添加你的開發代碼。 # ssh [email protected] -p 29418

**** 歡迎來到 Gerrit 代碼審查 ****嗨 selvam,您已通過 SSH 成功連接。 不幸的是,交互式 shell 被禁用。 要克隆託管的 Git 存儲庫,請使用: git clone ssh://[email protected]:29418/REPOSITORY_NAME.git與 192.168.56.137 的連接已關閉。

# git clone ssh: //[email protected] :29418/Gerrit_Test

4.Jenkins的安裝

您可以使用 apt-get 或 deb 包安裝 jenkins。

  • sudo apt-get 更新
  • sudo apt-get install jenkins

Jenkins 配置存在於 /etc/default/jenkins 中,您可以在其中更改 java 位置和 JAVA_ARGS。 默認情況下,jenkins 運行在 8080 上。如果您在同一台機器上運行 gerrit 和 jenkins,則默認端口 8080 已經被 gerrit 佔用。 這裡需要更改 jenkins 端口。 要更改它,請編輯 HTTP_PORT 值以在不同的端口上運行。

5.啟動Jenkins進程

# /etc/init.d/jenkins start轉到您的瀏覽器並使用您的 jenkins 主機名和端口號加載 jenkins 頁面。

 https://:/

如果你安裝了 Jenkins 2.*,jenkins 網頁會詢問 initialAdminPassword。 您可以在 /var/log/jenkins/jenkins.log 文件中找到密碼。 日誌如下所示:

需要 Jenkins 初始設置。 已創建管理員用戶並生成密碼。 請使用以下密碼繼續安裝: f16b093akcnml397jcdoa239d6bafb9這也可以在以下位置找到:/var/lib/jenkins/secrets/initialAdminPassword
  • 現在去 Jenkins -> Manage Jenkins -> Plugin Manager 在 jenkins 中安裝gitgerrit 插件
  • 單擊“可用”選項卡並蒐索“ Git Plugin ”並單擊“無需重啟即可安裝”。 再次搜索“ Gerrit Trigger”並單擊“Install without restart”。 最後,檢查它是否在已安裝列表中。

使用 Gerrit 和 Jenkins 插件的集成設置 Jenkins 進程由 jenkins 用戶運行。 因此,我們需要在 gerrit 中啟用 jenkins 用戶的訪問權限。

  • 使用您的身份驗證方法,在 gerrit 中創建 jenkins 用戶
  • 現在像之前一樣為 jenkins 用戶創建 ssh-keygen。 但這一次,使用空密碼創建密鑰並在 gerrit 中復制 jenkins 用戶的公鑰
  • 現在單擊“新建項目”以創建新作業並在 Source Code Management/Git 部分添加您的 git url。 此外,在 Build Triggers 中選擇“Gerrit event”並輸入 Gerrit Project Pattern。

使用 Gerrit 和 Jenkins 事件的集成設置CI 集成活動 最後,保存配置。 完美,您的 Gerrit 和 Jenkins 設置現已完成。