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關鍵字,配置credentialsId
和url
后Jenkins就可以拉取遠程git倉庫代碼了.Url很好理解,即為遠程倉庫的地址.這里比較費解的是credentialsId
是什么,如何設置它?其實也非常簡單,前面講自由式任務的時候我們講過如何在jenkins里添加添加一個git用戶名和密碼,這里的credentialsId
即為我們創建的包含用戶名和密碼的用戶信息的id(這個id是jenkins自動生成的)這里通過這個id,Jenkins便可以找到這個用戶名和密碼.
創建一個用戶名和密碼
要創建一個用戶名和密碼也不是非常復雜,我們在Jenkins主面板左側導航面板里找到Credentials
,點擊進入,便可以看到以下一個面板
這里左側Credentials
下面有一個System
我們點擊一下,此時面板中央位置如下圖
我們點擊這個鏈接進入,此時左側會出現一個添加Credentials
按鈕
點擊便會出現一個可以設置用戶名和密碼的界面
如上圖示,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' } }
原文出處: