1 - Git源碼管理
Jenkins下的Git源碼管理功能是由Git插件提供的。
https://plugins.jenkins.io/git
2 - 准備工作
2.1 插件
確認Jenkins Git Plugin插件是否已安裝
2.2 視圖
創建一個視圖用於分類存放Jenkins job,便於查找和管理
2.3 代碼倉庫
確認代碼倉庫GitLab信息
2.4 生成SSH憑據
在命令行執行如下命令,生成SSH憑據
ssh-keygen
cat .ssh/id_rsa.pub
cat .ssh/id_rsa
2.5 添加SSH公鑰到GitLab賬戶
3 - 示例:Git源碼管理
3.1 新建job
添加一個free style的job到視圖
3.2 添加憑據
選擇和添加必要信息
特別注意:“Private Key”是Jenkins主機的私鑰( .ssh/id_rsa
)
填寫Repository URL和選擇Credentials,如果沒有錯誤信息提示,說明驗證成功,保存配置。
3.3 運行Job
查看運行結果
查看工作區
對應的本地目錄
查看控制台輸出
4 - 分支管理
在源碼管理的Branches to build
部分,可以填寫需要下拉的分支。
如果設置了多個分支或一個范圍,Jenkins會檢測每個分支中新的提交代碼。
在執行構建時,也會對有新提交的分支執行一次構建任務。
點擊問號按鈕,會給出書寫方法和格式的幫助信息。
The safest way is to use the refs/heads/
- 默認值
- 設置為空:所有的分支都會被檢測代碼提交並且執行構建
- 直接使用分支名:例如master等,建議的寫法為
refs/heads/<branchName>
- 通配符和正則表達式:指定某個范圍
- 環境變量:便於參數化構建
5 - 附加操作
通過Additional Behaviours選項可以使用Git源碼管理的附加功能。
常用附加選項
- Clean before checkout:指定對工作區目錄的操作或者執行腳本,保證下一次構建不受上一次的影響
- Wipe out repository & force clone:強制刪除之前拉取的代碼並重新拉取,用於保持與遠端倉庫狀態一致
- Create a tag for every build:每一次構建都在本地創建一個標簽
- 檢出到子目錄:指定拉取代碼到工作區目錄的哪個子目錄,如果不指定,默認為工作區目錄,
- 檢出到指定的本地分支:本地也有一個對應的分支
- pure stale remote-tacking branches:用來清除本地已失效的遠程追蹤分支,標簽也會被刪除
6 - 拉取多個倉庫
通過Multiple SCMS插件和附加操作中的“檢出到子目錄”,可以拉取多個倉庫到一個工作目錄中。
6.1 安裝Multiple SCMS插件
6.2 根據需求配置拉取選項
特別注意:指定附加操作中的“檢出到子目錄”,用來區分多個倉庫的內容。