iT邦幫忙

2022 iThome 鐵人賽

DAY 17
0
自我挑戰組

Android 工程師的 CI/CD 之旅系列 第 17

Jenkins Job 的頻率跟觸發條件(2/2)

  • 分享至 

  • xImage
  •  

Jenkins 在掃描遠端分支的時候,若遠端分支數有上百個,光是要找到符合條件的去下一步都會花上時間。所以在核準 PR 後,要記得把該分支做刪除。當然在開發過程當中,我們也會推很多測試或是實驗用的分支到遠端,但時間久了之後也需要檢視這些分支是否還有用途,若用途不明,或是已經超過時效性的話,建議也可以跟著一併刪除。

遠端分支的數目多寡,也取決於開發者的規模,以及需求迭代速度。

控制了數目,那怎麼來設置分支的條件?以下直接使用圖片做 git flow 做說明。

git-flow
Source: https://gitbook.tw/chapters/gitflow/why-need-git-flow

從這張示意圖之下,可以看見各分支的流向。目前一個帳密登入功能要實做,這個需求被定成一個 feature,所以當我要開發的時候,會在 develop 分支上建立 feature/login 的分支,做為實做功能的異動。其他團隊的開發者可能也是在 develop 分支上建立自己的分支進行實作,而當在處理完登入功能之後,我提交程式碼想請其他人做檢視,登入功能要回到 develop 分支上。

那 release 分支則是當我要交付給 QA 的時候去做發佈,而最終要上線之後,在 release 的版本合併回 master 主幹,並壓上 git Tag 做紀錄。

以上是簡單的說明 git flow 的走向,前面提到建立分支的時候,使用了 feature 的前綴字。而我們開發過程當中的分支們都需要經歷過 CI 時,在跑相關 Job 的時候,就可指定前綴字為 feature。而 master 跟 hotfix 也許是可以做為排除條件,不需要執行 CI 流程。

來整理一下,原本的觸發條件是,只要有出現新的遠端分支就執行 Job。所以 git flow 來說,featuredevelopreleasehotfix 還有 master 只要有異動,就會執行該 Job。因此當指定分支加上 feature/* 關鍵字之後,當掃描遠端的分支們為 feature 開頭才視為執行 Job 的觸發條件,是不是我們的 Job 的執行的效率提高很多了。

當然開發團隊有更多自定義的前綴字,也端看開發人員的在命名上的共識。這樣也可以讓執行 Job 的運用更有彈性,也能夠有效率的運用 Jenkins 的機器的資源。


上一篇
Jenkins Job 的頻率跟觸發條件(1/2)
下一篇
了解 Jenkinsfile 和 Job 在做什麼
系列文
Android 工程師的 CI/CD 之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言