配置管理工做流程

業內實踐

git flowgit

固定遠程分支:github

  • master分支: 主分支,和生產環境一致,存放已發佈完成的版本
  • develop分支: 主開發分支,用於合併功能分支,維護公共的最新代碼

臨時遠程分支:sql

  • release分支: 預發分支,發佈時基於Develop分支建立一個Release分支,完成Release後,咱們合併到master和develop分支
  • feature分支: 功能分支,每一個功能對應的分支,合併到develop分支和release分支後刪除
  • hotfix分支: bug修復分支,後合併到develop和master分支後刪除

優勢:shell

清晰明瞭,每一個分支都有都本身的做用,有工具或插件幫助操做者使用此流程。數據庫

缺點:工具

更加適合於按版本發佈的項目,不太適合持續發佈。 有的服務更指望代碼變更就發佈一次,每次發佈須要合併develop、release、master三個分支。gitlab

github flow單元測試

如圖,github flow很是簡單,只有一個固定的遠程分支marter。每一個研發人員fork項目後,在本地用功能分支開發,開發完成後提交PR請求合併master分支。
PR請求經過後,合併至master分支並部署。master分支表明能夠隨時上線的版本,而且能夠經過持續發佈系統,無限發佈到生產環境。測試

但有些時候,PR被合併了以後咱們可能也不會馬上就發佈到生產環境,長此以往,生產環境就會落後master。插件

綜合git flow 和 github flow 的優缺點,在github flow的基礎上,增長一個production分支,用來標識目前已上線的版本。

配置流程

  • 項目管理員建立gitlab倉庫,建立並保護master分支,設立相關權限
  • 研發人員fork項目,生成本身的fork庫
  • 研發人員clone本身的fork庫至本地
  • 研發人員在本地新建功能分支,並提交至本地分支,也能夠push功能分支至遠程fork庫備份
  • 研發人員按期與遠程主幹分支同步
  • 研發人員推送至本身的fork庫
  • 不須要測試人員測試時:
    • 研發人員直接發起PR請求合併我的遠程倉庫的開發分支至項目遠程倉庫的master分支
    • CI自動執行代碼靜態檢查和單元測試
    • 項目管理員審覈PR,合併請求完成開發流程
  • 須要測試人員測試時:
    • 研發人員通知項目管理員在項目遠程分支中建立功能分支,研發人員發起PR請求合併我的遠程倉庫的開發分支至項目遠程倉庫的對應分支
    • CI自動執行代碼靜態檢查和單元測試
    • 項目管理員審覈PR,合併至項目庫的遠程功能分支
    • 測試人員拉取功能分支測試
    • 測試人員提出PR請求,合併遠程功能分支至master分支
    • CI自動執行單元測試
    • 項目管理員審覈PR,合併請求完成開發流程
  • 項目管理員在發佈平臺選擇響應的master提交進行發佈,發佈後自動對master標記tag

Git commit日誌規範

git checkout新分支時,分支名採用 feature_標題_erp#、bugfix_標題_erp#、refactor_標題_erp#

如:feature_batch_save_product_12345

git commit時提交日誌規範以下:

<type>:<subject>
    
<body>

type 枚舉:

  • feat 新增功能
  • fix 修復bug
  • docs 修改了文檔、readme
  • style 不改變代碼邏輯,僅修改代碼樣式
  • refactor 非功能性重構
  • test 測試用例

subject: 描述主要變動內容

body: 主體內容,更詳細的說明文本,如erp地址等,能夠爲空

Code Review

提交Code Review以前要作什麼?

  • 準備或者提交相關需求文檔以備審查者詢問
  • 編寫符合規範的代碼和合適的註釋
  • 考慮代碼是否有重構的可能
  • 單元測試所有經過,測試覆蓋率達標

如何Code Review?

  • 瞭解需求:這個提交是爲了解決什麼問題,是需求單、BUG修復、仍是代碼重構,
    若是不明確,須要及時和代碼做者溝通和討論
  • 檢查代碼業務邏輯是否符合需求
  • 代碼是否符合相關代碼規範
  • 確認是否有更好的方式方法重構代碼
  • 檢查單元測試用例是否考慮全面
  • 若是代碼沒有問題,也寫上相似GOOD JOB之類的評論

Code Review以後能夠作什麼?

  • 對於代碼審查人表示感謝
  • 若是代碼審查沒有經過,不要往內心去,審查的是代碼,不是你
  • 嘗試對每個評論作出回覆
  • 等待合併分支,等待持續集成告訴你所有經過

項目結構規約

-doc 文檔文件夾,用來存放概要、詳設、API等文檔資料 -src 程序源碼文件夾,用來存放源碼 -db 數據庫文件夾,用來存放可執行的數據庫相關變動DDL腳本文件,如V1__init.sql,V2__feature_batch_save_product_12345.sql -deploy (可選)用來存放部署相關文件,如shell腳本等 -.. 按項目自由配置 README.md 項目說明 Dockerfile

相關文章
相關標籤/搜索