發表文章

目前顯示的是 一月, 2017的文章

如何自動化 release 的流程?

圖片
這篇文章會介紹如何使用 semantic-release 這個工具,自動化 Node.js (or JavaScript) 專案的版本號,以及 changelog 的 release 流程。
什麼是 semantic-release?為什麼要用 semantic-release?如何使用 semantic-release?什麼是 semantic-release?semantic-release 可以自動完成下列這些事:
當 code 被 push 或 merge PR 回 production branch (ex: master) 的時候CI build 被觸發,semantic-release 會收集此次更新的所有 commit messages(需遵循 AngularJS Git Commit Message Conventions 的格式)自動根據 semver 的規則來更新 package.json 的 version,並建立 Git tag自動 publish 新版本的 package 到 npm registry(非必要)自動在 GitHub releases 的頁面上,產生相對應的 changelog 所以簡單來講,semantic-release 指的就是遵循 semver 的 release 流程。

semver 的介紹和好處可以在網路上找到很多文章,這裡就不贅述了,它的概念主要就是將版本號分成:

Major.Minor.Patch

例如 React 的 0.11.2、Vue.js 的 2.0.10 等,這三個數字各自代表:
Major 當你的 API 不兼容前一版本時(又稱 Breaking Change),major + 1,例如:1.x.x -> 2.0.0。
Minor 當你增加新 feature 的時候,並且不影響前一版本的 API,minor + 1,例如:x.6.x -> x.7.0。
Patch 當你修復 bug 的時候,並且不影響前一版本的 API,patch + 1,例如:x.x.9 -> x.x.10。
如果專案有在執行 git-flow 的話,minor 配合的就是 feature 的 release flow,patch 則是 hotfix 的 release flow。
為什麼要用 semantic-releas…

這個網誌中的熱門文章

DevOps:持續整合&持續交付(Docker、CircleCI、AWS)

Factory pattern 工廠模式

Mock Server&契約測試