mirror of
https://github.com/JefferyHcool/BiliNote.git
synced 2026-06-02 20:29:36 +08:00
fix(ci): commitlint workflow 去掉伪 input + 规范 release merge commit 格式
v2.1.3 push master 时 Lint commit messages job 红了,根因两条:
1. workflow 里写了 'firstParent: false',但 wagoid/commitlint-github-action@v6
的合法 input 列表里没这个字段,被 ignore 同时打 warn
2. release merge commit 标题 'Release v2.1.3' 不符合 type(scope): subject 格式,
commitlint 报 subject-empty + type-empty
· @commitlint/config-conventional 默认 ignore 'Merge ' 前缀的 commit,
但我们手动 -m 把标题写成 'Release vX.Y.Z' 跳过了豁免
修:
- 去掉 .github/workflows/commitlint.yml 里那条 firstParent 假 input
- RELEASING.md §3 加入 merge commit 标题模板:
· 合 master 用 'chore(release): vX.Y.Z'
· 回灌 develop 用 'chore(release): merge release/X.Y.Z back into develop'
- CONTRIBUTING.md §6.3 同步加这条提醒
历史上 master / develop 的 'Release v2.1.x' 那几个 merge commit 已经在 history
里,没法回头改(不能强推 master)。但 commitlint 在 push 时只 lint 推送范围里的
新 commit,旧 commit 不会重新校验,所以不会持续报错。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2
.github/workflows/commitlint.yml
vendored
2
.github/workflows/commitlint.yml
vendored
@@ -26,7 +26,5 @@ jobs:
|
|||||||
uses: wagoid/commitlint-github-action@v6
|
uses: wagoid/commitlint-github-action@v6
|
||||||
with:
|
with:
|
||||||
configFile: .commitlintrc.json
|
configFile: .commitlintrc.json
|
||||||
# PR 上检查 base..head 之间所有 commit;push 上只校验最新 commit
|
|
||||||
firstParent: false
|
|
||||||
failOnWarnings: false
|
failOnWarnings: false
|
||||||
helpURL: https://github.com/JefferyHcool/BiliNote/blob/develop/CONTRIBUTING.md#5-提交规范
|
helpURL: https://github.com/JefferyHcool/BiliNote/blob/develop/CONTRIBUTING.md#5-提交规范
|
||||||
|
|||||||
@@ -250,6 +250,7 @@ chore(ci): 优化 docker 构建缓存
|
|||||||
|
|
||||||
- `feature/*` / `fix/*` 合入 `develop`:推荐 **Squash and merge**,保持 develop 历史线性。
|
- `feature/*` / `fix/*` 合入 `develop`:推荐 **Squash and merge**,保持 develop 历史线性。
|
||||||
- `release/*` 合入 `master` 与回灌 `develop`:使用 **Merge commit (--no-ff)**,保留发版结构。
|
- `release/*` 合入 `master` 与回灌 `develop`:使用 **Merge commit (--no-ff)**,保留发版结构。
|
||||||
|
· merge commit 标题用 `chore(release): vX.Y.Z`(合 master)或 `chore(release): merge release/X.Y.Z back into develop`(回灌 develop),保证 commitlint 通过。
|
||||||
- `hotfix/*` 同上 release。
|
- `hotfix/*` 同上 release。
|
||||||
|
|
||||||
### 6.4 合并后
|
### 6.4 合并后
|
||||||
|
|||||||
11
RELEASING.md
11
RELEASING.md
@@ -42,10 +42,13 @@ git push -u origin release/X.Y.Z
|
|||||||
|
|
||||||
在 GitHub 上发起两个 PR:
|
在 GitHub 上发起两个 PR:
|
||||||
|
|
||||||
| PR | base | 合并方式 |
|
| PR | base | 合并方式 | 合并后 commit 标题 |
|
||||||
|---|---|---|
|
|---|---|---|---|
|
||||||
| `release/X.Y.Z` → `master` | `master` | **Merge commit (--no-ff)** |
|
| `release/X.Y.Z` → `master` | `master` | **Merge commit (--no-ff)** | `chore(release): vX.Y.Z` |
|
||||||
| `release/X.Y.Z` → `develop` | `develop` | **Merge commit (--no-ff)** |
|
| `release/X.Y.Z` → `develop` | `develop` | **Merge commit (--no-ff)** | `chore(release): merge release/X.Y.Z back into develop` |
|
||||||
|
|
||||||
|
> ⚠️ Merge commit 的标题**必须**符合 `type(scope): subject` 格式(commitlint 在 push 到 master/develop 时会校验)。
|
||||||
|
> 历史上用过 `Release vX.Y.Z` 这种形式,会被 commitlint 报 `type-empty` / `subject-empty`。
|
||||||
|
|
||||||
`master` 分支保护要求 review 通过。回灌 `develop` 是为了把发版冻结期内的小修同步回来。
|
`master` 分支保护要求 review 通过。回灌 `develop` 是为了把发版冻结期内的小修同步回来。
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user