自動版本控制與變更記錄之生成,乃實用之生產模式,開源及SaaS團隊常用以避亂放之註記與手動標籤.
吾將構一潔淨之系統,所用者謂:
- 🧠 常規提交(提交訊息之規則)
- 🤖 詞義版本自動化
- 📜 自動生成之CHANGELOG
- 🚀 GitHub Actions 工作流
🧠 0. 所建之事
```plaintext id="flow0"
提交 → 推送 → GitHub Action
↓
分析提交
↓
版本号更新(补丁/次级/主要)
↓
生成变更日志
↓
立git标签
↓
立GitHub发布
---
# 📦 1. Install required tool (standard approach)
We’ll use:
👉 **semantic-release** (industry standard)
```bash id="inst1"
npm install --save-dev semantic-release @semantic-release/changelog @semantic-release/git @semantic-release/github
🧠 2. 用常规提交(甚要)
汝之提交必依此式:
✅ 例
新增(小版本增)
```bash id="c1"
增用户登录之制
### Fix (patch version bump)
```bash id="c2"
fix: resolve navbar bug on mobile
大更易(主版增)
```bash id="c3"
重构API之制
or
```bash id="c4"
BREAKING CHANGE: remove old auth system
⚙️ 3. 设语义发布之制
📁.releaserc.json
```json id="r1"
{
"枝干": ["主"],
"插件": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/changelog",
"@semantic-release/github",
[
"@semantic-release/git",
[{
"assets": ["package.json", "CHANGELOG.md"],
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
}
]
]
}
---
# 📜 4. Create CHANGELOG file
```bash id="ch1"
touch CHANGELOG.md
Start empty
```md id="ch2"
更新日志
凡显著之变,皆录于此.
---
# 🚀 5. GitHub Actions workflow (AUTO VERSION + CHANGELOG)
## 📁 `.github/workflows/release.yml`
```yaml id="w1"
name: Auto Version & Changelog
on:
push:
branches:
- main
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: npm install
- name: Run semantic release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npx semantic-release
🧠 6. 自动为之者何
当推至main时
其将:
- 析提交之文
-
定版本之增
- 修 → 1.0.1
- 增 → 1.1.0
- 破 → 2.0.0
制更迭之志
立Git之印
立GitHub之释
新
CHANGELOG.md
文
```md id="log1"
1.2.0 (2026-05-23)
新制
- 增用户认证之制
- 增仪表盘之析
修文之谬
- 正移动端导航栏之位
- 解API超时之患 ```
🏷️ 8. 例GitHub之发布
GitHub将自创:
```plaintext id="rel1"
v1.2.0 - 生产之版
特:
- 用戶認證系統
- 分析儀表板
修復:
- 移動端導航欄錯誤 ```
🔐 9. 需GitHub密鑰
務必確存此項:
```plaintext id="sec1"
GITHUB_TOKEN (GitHub Actions自動供給)
No extra setup required.
---
# 🧪 10. Real workflow in action
### Developer flow:
```plaintext id="flow1"
git commit -m "feat: add dashboard UI"
git push origin main
- 检测提交类型(
feat) - 版本号递增→次级更新
- 更新CHANGELOG.md
- 创建git标签(v1.3.0)
- 发布GitHub版本
🔥 11. 企业升级版
🟢 自动发布npm包
```yaml id="npm1"
- 行:npm发布 ```
🟡 Slack发布通知
```yaml id="slack1"
- 名:通知Slack 行:curl -X POST $SLACK_WEBHOOK ```
🔵 多分支发布
```json id="branch1"
"分支": ["main", "next"]
---
## 🟣 Changelog formatting customization
You can group commits like:
* Features
* Fixes
* Performance
* Breaking changes
---
# ⚠️ 12. Common mistakes
### ❌ Not using conventional commits
→ versioning won’t work properly
### ❌ Pushing messy commit messages
```bash id="bad1"
fix stuff
update
✖ 忘却取深:零
→ 发布史断裂
🧠 最终架构
```plaintext id="final1"
提交(特性/修正/断裂)
↓
GitHub Action 触发
↓
semantic-release 分析提交
↓
自动更新版本之颠簸
↓
更新CHANGELOG.md
↓
立git标签,并发布GitHub之发布。
---
# 🚀 What you just built (REAL DEVOPS LEVEL)
You now have:
* 🤖 Automated versioning
* 📜 Auto changelog generation
* 🏷️ Git tags + GitHub releases
* 🚀 CI/CD-ready release pipeline












