問題
好巧不巧,當你晚上準備上線的時候,在下午臨近下班的時候CI&CD工具出問題了,送出代碼不能觸發建構,不能上線了,Drone平台那邊也下班了,正好CI&CD依賴的公司git倉庫也出問題了(就是上次Drone建構失敗被誤會的部門),我們的建構服務也沒有相關的報錯日志,就順水推鍋取消了上線。
定位
問題沒有定位出來,晚上(别人下班後)立馬check線上的版本,把中間過程的日志都記錄一下看看問題出在哪
CI&CD流程及日志定位
梳理CICD流程,簡易的流程圖如下:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISM9AnYldnJwAzN9c3Pn5Gcu4WNHNWdRJTWw50VMxWNyIWeSd0TxUFROFTQU50dNRUT4lkeYZXOT5UNnpnTycGVNZHNyIGc4dlWrVzVZtWM5pVdsJjW5Z1MjZHMyIma5EzYulzRilWNykldwIjYqVTej5WOHJWa1ITW11EWa5mRXJGc5kHT20ESjBjUIF2Lc12bj5SYphXa5VWen5WY35iclN3Ztl2Lc9CX6MHc0RHaiojIsJye.png)
隻有管理系統是我們自己的,部署驗證,相關日志如下:
2021-03-05 10:41:16.796 [XNIO-2 task-309] INFO - ==============部署管理系統,環境:env-new-test===============
2021-03-05 10:41:16.800 [XNIO-2 task-309] INFO - ==============cloneDir:/tmp/datahub/env-new-test,gitUrl:http://gitlab.xxx.cn/xxx/env-new-test.git===============
2021-03-05 10:41:16.800 [XNIO-2 task-309] INFO - ==============拉取代碼===============
2021-03-05 10:41:18.089 [XNIO-2 task-309] INFO - ==============拉取代碼===============
2021-03-05 10:41:18.099 [XNIO-2 task-309] INFO - ==============deployLogs:businessline-engine:0.1.675,mark-center-new:1.0.124-release.995,*******===============
2021-03-05 10:41:18.107 [XNIO-2 task-309] INFO - ==============git push===============
沒有報錯日志,Git送出也成功了,但是就是沒有觸發建構(上面的鍋推錯了)
柳暗花明
第二天一上班,拉着大佬讨論,大佬看了一下,果然和公司git倉庫那邊沒有關系(我們沒用,drone也沒依賴);一般drone沒有觸發建構原因有二:
1、自己設定的event限制(可自查)
2、repo session過期 (可關閉repo開關,sync repo後再打開開關)
event限制
這個其實是drone.yml裡面的pipeline.deploy.when的配置,相關配置如下:
pipeline:
deploy:
image: cicd-maven-***:1.0.2
when:
event:
- push
branch: master
這玩意八百年沒有變過,是以直接排除。
repo session過期
drone的repo session過期機制不是太清楚(後面有機會再研究),直接在drone的右上角點開Repositories菜單,把repo的開關先關閉再打開,再次送出恢複正常。自此問題解決,在此記錄一下,證君清白