14:00 Alice: 我想要先發版,可是……好多 Job 在跑,能不能先暫停啊
14:00 Carol: 我的分支在跑 Unit Test,等它一下跑完
14:02 Alice: 有沒有其他人的也在跑啊?
14:07 Bob: 等一下我要把程式碼 push,等等會再跑一下
14:10 Alice: 跟 QA 確認,我只要下班前發版就好了,那我就等等吧
因應開發流程,在大家把程式碼推到遠端之後,會執行很多的 Job,難免 Jenkins 就會變得很忙。當然有遇到緊急需要處理的,也是可以優先執行最重要的 Job。故事中,其實也就是開發跟發版的 Job 都在進行,那就回頭檢視看看,觸發條件或是啟動頻率造成有些時候 Jenkins 太忙了。
首先,先列出開發中 CI 相關的 Job 的觸發條件和頻率:
在多人合作開發少頻率合理,畢竟在開發當中,也無法預期有多少的人在異動程式碼。但只有兩人,甚至一人團隊,建議頻率可以再改成四小時,或是六小時執行一次。讓 Jenkins 不會隨時隨地都在背後執行,一直處於忙碌中的狀態。
觸發條件乍看之下合理,的確所有的遠端分支是需要檢查。不過像我們在討論 CI/CD 流程,在處理 CI/CD 的分支其實可以去做排除不需要做 CI 的動作。在 Jenkins 當中,可使用正則式去處理符合條件的分支。
不過,在排除處理 CI/CD 分支之前,我們來先看看團隊的分支命名規則是什麼,才能整理我們要排除哪些分支是不需在此 Job 執行,我們明天見!