持續集成高級篇之Jenkins Pipeline git拉取


 

系列目錄

PipeLine中拉取遠程git倉庫

前面講自由式任務的時候,我們可以看到通過自由式job里提供的圖形界面配置git拉取非常方便的,實際上使用PipeLine也並不復雜.這一節我們展示一下如何在PipeLine任務中拉取git倉庫代碼.

node{
    stage("check out"){ git credentialsId: '3c210def-c000-4e2a-9b2d-838986a6b172', url: 'https://github.com/mrtylerzhou/gitShow.git' } }

以上代碼非常簡單,通過使用git關鍵字,配置credentialsIdurl后Jenkins就可以拉取遠程git倉庫代碼了.Url很好理解,即為遠程倉庫的地址.這里比較費解的是credentialsId是什么,如何設置它?其實也非常簡單,前面講自由式任務的時候我們講過如何在jenkins里添加添加一個git用戶名和密碼,這里的credentialsId即為我們創建的包含用戶名和密碼的用戶信息的id(這個id是jenkins自動生成的)這里通過這個id,Jenkins便可以找到這個用戶名和密碼.

創建一個用戶名和密碼

要創建一個用戶名和密碼也不是非常復雜,我們在Jenkins主面板左側導航面板里找到Credentials,點擊進入,便可以看到以下一個面板

img

這里左側Credentials下面有一個System我們點擊一下,此時面板中央位置如下圖

img

我們點擊這個鏈接進入,此時左側會出現一個添加Credentials按鈕

img

點擊便會出現一個可以設置用戶名和密碼的界面

img

如上圖示,Kind使用默認的,添加一個用戶名和密碼.然后添加用戶名和密碼,此時id可以手輸入,如果留空則Jenkins會自動生成一個.Description為一個簡短描述,用戶名和密碼很多時方便區分.

添加成功后我們想要看到這條記錄的id,點擊板右側的搬手螺絲刀圖標就可以看到id了.我們把這個id復制到 PipeLine里credentialsId

添加一個ssh key

使用用戶名和密碼容易泄密,實際工作中常常使用ssh方式登陸,這里對如何生成ssh key,如何在遠程倉庫中添加公鑰不再贅述,不熟悉的童鞋可以參考前面章節或者官方幫助文檔以及在互聯網上搜索相關材料.這里介紹下如何把ssh 私鑰添加到Jenkins里,以便Jenkins使用ssh連接遠程倉庫.

添加私鑰類似以上添加用戶名密碼,只是添加用戶名密碼時Kind選項使用的是默認的選擇,這里Kind下拉一下,選擇SSH username with private key,用戶名即為你的git賬戶用戶名,private key勾選Enter directly把我們本機的私鑰添復制到框里面.

需要注意的是ssh和http地址是不一樣的,一定要注意.

把代碼拉到指定位置

Jenkins默認會的把項目拉到Jenkins安裝目錄下Workspace+項目名的目錄下面,很多時候由於一些原因我們可能希望改變這一行為,把項目拉到自定義的一個目錄下面,這時候可以使用dir函數,然后把要執行的代碼寫在dir函數代碼塊內.示例代碼如下

node{
    stage("check out"){ dir("projdir"){ git credentialsId: '3c210def-c000-4e2a-9b2d-838986a6b172', url: 'https://github.com/mrtylerzhou/gitShow.git' } } }

以上語句執行后,可以看到jenkins會把代碼拉到Workspace+項目名+projdir的目錄下,當然也可以指定絕對路徑.

 拉取指定分支的代碼 

node {
   stage('Source') {
      git branch: 'master', credentialsId: 'GitHubAccess', url: 'https://github.com/cookcodeblog/my-private-project.git'
   }
}

 

原文出處:

持續集成高級篇之Jenkins Pipeline git拉取

在Jenkins Pipeline中使用Git


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM