科技新知

Night Build 實務操作上的注意點

Night build第一個要注意的問題,就是要確保同一個commit,真的可以重複建設。一般來說,大家的目標只在運行測試,而自動測試不具破壞性,就基本可以重複的。而如果測試當中包含發佈測試版本,那就還要考慮重複發佈有沒有生效或造成附作用。

以Java maven為例,重複發佈測試版本需要遵守特定的規則,版本號需要以SNAPSHOT結尾,這是為讓maven每天都會重新下載它們的包。而沒有SNAPSHOT結尾的,就只會做一次性下載,減少重複下載造成的資源浪費。若真遇著不支援重複發佈的情況,就需要以日期時間做版本號,就像vscode的某些插件,就是以時間截結尾以作為區分。

Night build另一個要注意的問題,就是開發圖隊何時進行下一輪開發,這會決定何時有新的版本號。扣除上述因為工具不支援的而引發的副作用,還要考慮沒有更新而發生的問題。

有個尷尬情況是,團隊在發佈現行版本時,release commit與main有機會是同一個commit(也就是未有進行下一輪開發)。若不斷重複發佈,有沒有變相發佈了一些沒有預期的功能?例如Docker image,官方大力建議每日自動發佈。當底層的image更新後,頂層引用它們的image,也可以重新發佈,保持安全性。但這樣做的問題,就是頂層的同一個版本號,昨日與今日的運行結果也可能不一樣。這對追蹤問題,並不友好。

所以大家做分支整合時,要預先對版本號作好規劃。然後還要留意Night build不應與release commit重疊。版本號大家做好語意管理,再加上alpha / beta / SNAPSHOT等區分Night build版本,應該就足夠了。而commit重疊問題,就要留意開發週期,Night build要麼就比release早一個commit(即在release時,不推進Night build),要麼晚一個commit(即馬上規劃下一個版本號進行Night build)。

馬交野


完美物質
當愛被遺忘時
機動戰士Gundam GQuuuuuuX -Beginning
機動戰士 Gundam GQuuuuuuX - Beginning -
MX4D 劇場版 「進擊的巨人」完結篇THE LAST ATTACK
MX4D 機動戰士 Gundam GQuuuuuuX - Beginning -
4DX  機動戰士Gundam GQuuuuuuX Beginning
4DX  劇場版 「進擊的巨人」完結篇 THE LAST ATTACK
機動戰士Gundam GQuuuuuuX Beginning
諾斯費拉圖
4DX  Red Velvet Happiness Diary: My Dear, ReVe1uv In Cinemas 2025
紅豆
MX4D 機動戰士GUNDAM GQUUUUUUX BEGINNING
4DX  哪吒之魔童鬧海
《大迷信》2025之《大結界》
IMAX with Laser 哪吒之魔童鬧海
大迷信2025之大結界
看我今天怎麼說
美國隊長4:勇敢新世界全景聲
哪吒之魔童鬧海
里斯本丸沉沒
4DX - Red Velvet Happiness Diary: My Dear, ReVe1uv In Cinemas 2025
童話睇硬了
美國隊長4:勇敢新世界
唐探1900
BJ 單身日記:我為仔狂
臨時決鬥
封神第二部:戰火西岐
完美伴侶
阿諾拉
完美物質
當愛被遺忘時