原來公司內部項目代碼放在svn上,最近打算新項目放到公司的git上,但之前jenkins安裝時沒有一起安裝git插件,導致現在安裝git插件過時無法安裝,從官網下載離線包也不知道哪個版本符合,隨便下載了一個版本的git.hpi文件,結果安裝時會自動安裝依賴的插件,但依賴插件安裝的是最新版本,導致git不兼容安裝失敗。而且更可恨的是自動安裝的依賴會覆蓋原有的已經安裝的插件版本,造成原有的很多功能無法使用了,,,太坑了。。。無奈只好不得不升級jenkins版本,於是有了該篇記錄。
更新其實非常簡單,推薦官網(https://www.jenkins.io/download/)下載穩定版LTS(截止當前是v2.303.3版本),最新版jenkins.war(今天2021.11.16官網最新版本是v2.320)不穩定,可以參考這篇文章:https://www.cnblogs.com/dzblog/p/6962000.html
2022.04.27補充:今天又再另一台服務器更新jenkins,發現很多插件都需要jenkins版本大於v.340,於是直接更新到了最新版本(截止目前是v.334),發現沒問題了,一切正常,所有插件都正常了。
可能你jenkins.war存放的目錄不同,找到自己的存放地址,先備份jenkins.war文件為jenkins.war.bak,再刪除jenkins.war文件,然后把最新的jenkins.war文件上傳(或直接下載)到對應目錄啟動即可。
從這個操作猜測原理,只是變更了jenkins的執行部分,並沒有改變基本配置,所以登錄賬號密碼還是原來的。
但是新版本之前的漢化包不起作用了,需要使用新版漢化方式。可以參照這篇文章:https://blog.csdn.net/u010960161/article/details/100154575 ,安裝完后記得要重啟生效哦~~
吐槽:最新版本的logo好不適應哦。。
遠不如之前的版本一目了然,但是從插件提示看是放棄之前的圖片logo了。
進入系統管理,有幾條警告,都可以忽略不用管。
此時去重新構建之前的一個maven項目,發行報錯了。。。
又沒改過代碼,這個錯應該是更新jenkins導致的,於是去更新插件,除了nodejs插件不更新(后來更新了下nodejs插件,結果原來的前端代碼報錯ERROR: Couldn’t find any executable in "/usr/*****",於是又還原回原來版本不更新就好了),其它全部更新,更新完后重啟jenkins,再次構建成功了。。。
本次目的原來是要安裝git插件的啊~~
在“系統管理——插件管理——可選插件”模塊輸入git查詢過濾,安裝git(有的版本是叫git plugin),奇怪的是在未安裝時顯示的是git,安裝完后在已安裝模塊顯示的是git plugin,因為git依賴git client,即使沒有選中git client 安裝的時候也會自動安裝。安裝很順利我這里沒出異常。安裝完成重啟jenkins即可。
然后創建git賬號用於獲取代碼。這里我沒使用key而是使用的賬號密碼,后面用key方式的時候再記錄。
在“系統管理——manage credentials”,點擊下面的store,再進入全局憑據配置。
原來創建的賬號密碼(比如我這里原來創建的svn賬號)在新版本里默認不顯示真實名稱,而是和id同一個字段(如圖中紅框部分),可以按下面步驟更新為顯示真實賬號名稱。
點擊尾部的工具圖標可更新賬號。
如此就可以在創建新構建時選擇git賬號密碼啦~~
后面的構建操作就跟svn的方式一樣啦~~可以參考我其他的jenkins相關文章。
上面構建的是maven項目,從git拉取代碼后構建成功沒問題,現在我要測試前端構建。
之前的前端構建使用的nodejs版本是6.10至8.9之間,新項目要求nodejs版本需大於12,因為之前的nodejs是系統安裝,然后在jenkins中全局配置時選擇自己安裝的路徑,所以第一想法是怎么在系統里安裝多版本nodejs,並在jenkins中配置多個自安裝的node版本,找了很多資料都沒有想要的答案,后來看到一篇豁然開朗,原來jenkins里安裝的nodejs不會污染系統node,而是安裝在jenkins自己管理的工具目錄里,所以可以安裝任意版本的nodejs而不沖突。感謝:https://www.jianshu.com/p/0a865a321d78
其實一開始我下載的是最新版jenkins(截止當前是2.320),但配置到后來全局安裝多個版本nodejs的時候有問題,一點擊“新增NodeJS”按鈕整個nodejs配置都消失了,無奈只好重新換了當前穩定版本LTS。。。
我學聰明了,直接安裝最新穩定版nodejs(截止2021.11.16是v16.13.0)。
全局配置的時候並沒有安裝,只是設置要使用的nodejs版本,真正在項目執行構建的時候才會去檢測是否已安裝需要的nodejs,沒有安裝就會在構建的時候先安裝需要的nodejs。
構建的時候需要先選好項目對應的nodejs版本哦~~
至此,全部問題解決~~