功能只能在正式機上測試,commit 合上去才知道有沒有問題。壞了,整個系統就壞了。組長疲於奔命,工程師也沒有安全感。
功能只有在正式機上才能跑完整流程,所以只能推上去才知道有沒有問題。
任何人可以直推 master,沒有審核機制,壞的 commit 沒有攔截點。
工程師推完就結束,測試和驗證的責任落在組長身上,形成單點壓力。
把風險分散到三個層級。工程師在測試機驗完,組長只需在正式機上線前把關一次。
自由開發,盡情 commit,不影響任何人。完成後開 PR 到 develop。
自動部署測試環境。工程師在這裡跑完整流程,確認沒問題才發 PR 給 master。
Branch Protection 保護。只有組長 Approve 才能 merge,此時功能已在測試機驗過。
從 master 分出 develop,作為測試機的部署來源
CI 自動偵測 develop 有新 commit 就部署到測試機
Branch Protection 設定,只有組長 Approve 才能 merge 進 master
工程師養成 feature → develop PR,驗完再發 develop → master PR