jenkins文件夾
1. Jenkins Gitlab 前端構建發布
流程:通常是從gitlab/github拉取項目,構建,把產出文件發到伺服器。
一、環境
創建任務之前,要先配置兩項:
問題1:jenkins credentials配置SSH
系統管理 -> Manage Credentials -> 全局憑據 (unrestricted) ->添加或者編輯
注意:這里的key是個大坑,最開始我糾結是填私鑰還是公鑰,發現粘貼進去都不對。(粘貼私鑰時我粘貼的是正文,沒有復制首尾兩行,導致一直報錯。)最後把私鑰整個粘貼進去就對了。
原因:
由於Jenkins的安全策略配置了CSRF跨站點保護。
解決方案:
進入Jenkins,系統管理-->全局安全配置,勾選匿名用戶具有可讀許可權和去掉CSRF防止跨站點請求偽造:
在 /configure 下
這個插件是jenkins連接linux系統的時候使用。
以下針對插件的每個屬性進行說明。
Name
SSH Server的Name屬性就是你希望連接的伺服器。
Source files
這里輸入的是你希望傳到伺服器的文件夾和文件。路勁是相對jenkins的workspace的項目名稱的。例如編譯打包後的路徑為dist文件夾下的jenkinszip.tar.gz,則Surce files填入dist/jenkinszip.tar.gz。
Remove prefix
如果Source files為dist/jenkinszip.tar.gz,但是不想把dist目錄創建到伺服器端,這個時候就可以在Remove prefix里填入dist
Remote directory
這里指定文件將被拷貝到伺服器的路徑。
PS:被拷貝文件在伺服器上的完整路徑=登錄伺服器賬號的默認路徑(就是全局設置的Remote Directory)+當前任務配置的Remote directory。
例如我的伺服器路徑是 /home/wwwroot/aaa
我全局配置Remote Directory 是 /home/wwwroot
當前任務配置的Remote Directory 是 /aaa/
Exec command
這里就是連接伺服器之後需要執行的命令。
注意:這里配置的Secret token和 webhook要填寫到gitlab裡面,路徑如下:
參考文章: https://blog.csdn.net/hou_ge/article/details/103507947
2. Jenkins源碼管理,關於Local mole directory
近期在配置Jenkins+maven+svn自動打包任務時,遇到一個項目,打包時需要依賴文件夾的目錄結構,如果直接從svn檢出打包,打出來的包會缺失文件。這時才注意到了關於Local mole directory的設置。
Local mole directory默認情況下是一個點,表示就在工作目錄下面直接檢出;
首先再jenkins上創建一個secdev的任務,項目直接檢出到工作目錄下
該secdev任務構建完成後,在jenkins的workspace下就會生成一個secdev的目錄。
接著配置我們真正需要打包的項目jdgl,將項目檢出到secdev目錄下,這樣就解決了jdgl項目打包需要依賴secdev的情況了。