gitlab api 從 v3升級之後 jenkins gitlab plugin 的問題

2019年初發生的,還是來記錄一下。主要是因為gitlab升級之後,舊版的v3 api已經被移除,所以導致jenkins gitlab plugin無法使用。

起因

原本的 jenkins (v 2.51, 安裝在macos)上頭的 gitlab plugin 是舊版本,和 gitlab 之間原本相安無事。某日因為gitlab upgrade後,原本舊有的v3 api就淘汰了,只剩下v4 api,但因為 jenkins 也很久沒更新,所以 gitlab plugin 只能support v3 api,於是jenkins就噴 error 無法作用。然後因為一進 jenkins 就只有 error message (因為綁 gitlab 帳號),所以想要更新 plugin 也沒辦法。

理論上應該在升級 gitlab 之前要先把 jenkins 的 gitlab plugin 升級,然後才進行 gitlab 升級,才可以無痛接軌。但因為沒注意到這件事情所以一整個爛掉。

處理 & 新問題

好,那就嘗試把 gitlab 升級之前的 image restore 回來。先把 jenkins 的 gitlab plugin 升級再重新做一次 gitlab 升級。結果居然 plugin 升級就爛掉了...

1562060164663

1562060161186

檢查config.xml檔案有存在,同時存取權限也沒有問題。

解決方式

在網路上找了一下發現,原本裝在 jenkins上頭的 gitlab plugin 是 v1.4.x,得要升級到 v1.5.x才可以支援gitlab v4 api。但是 v1.5.x plugin 必須要jenkins v2.73以上才能正常運作,偏偏使用中的是 v2.51,所以…。然後很糟糕的是,在jenkins plugin 的頁面上查到的說明,gitlab plugin說只要 jenkins 1.6 以上就可以用 =_=

1562060599071

所以接下來就是gitlab原本已經升級的就不用更動,先把 jenkins 的 config.xml 搬走備份起來,當作 jenkins 全脫 plugin,然後升級 jenkins 到v2.73以上,然後先例馬裝好 gitlab plugin v1.5.x,然後把備份的 config.xml merge回去(只有gitlab plugin相關的會有問題需要注意)就結束了。