Skip to content

Commit 63b8e4b

Browse files
ci: add semantic prs workflow
Signed-off-by: Mathew Wicks <[email protected]>
1 parent b5ade4e commit 63b8e4b

File tree

3 files changed

+98
-7
lines changed

3 files changed

+98
-7
lines changed

.github/release.yaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
changelog:
2+
exclude:
3+
labels:
4+
- changelog/ignore
5+
categories:
6+
- title: Significant Changes
7+
labels:
8+
- changelog/significant
9+
- title: New Features
10+
labels:
11+
- changelog/feature
12+
- title: Improvements
13+
labels:
14+
- changelog/improve
15+
- title: Bug Fixes
16+
labels:
17+
- changelog/fix
18+
- title: Documentation
19+
labels:
20+
- changelog/docs
21+
- title: Miscellaneous
22+
labels:
23+
- "*"

.github/workflows/semantic-prs.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: Semantic PRs
2+
3+
on:
4+
pull_request_target:
5+
types:
6+
- opened
7+
- reopened
8+
- edited
9+
10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}
12+
cancel-in-progress: true
13+
14+
jobs:
15+
validate_title:
16+
name: Validate Title
17+
runs-on: ubuntu-latest
18+
steps:
19+
- uses: amannn/action-semantic-pull-request@c3cd5d1ea3580753008872425915e343e351ab54 # v5.2.0
20+
env:
21+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
22+
with:
23+
# allowed commit types
24+
types: |
25+
fix
26+
feat
27+
improve
28+
refactor
29+
revert
30+
test
31+
ci
32+
docs
33+
chore
34+
35+
# disallow all commit scopes
36+
disallowScopes: ".*"
37+
38+
apply_labels:
39+
name: Apply Labels
40+
runs-on: ubuntu-latest
41+
needs: validate_title
42+
permissions:
43+
pull-requests: write
44+
steps:
45+
- uses: deployKF/deployKF/.github/actions/conventional-release-labels@main
46+
with:
47+
type_labels: |
48+
{
49+
"breaking": "changelog/significant",
50+
"fix": "changelog/fix",
51+
"feat": "changelog/feature",
52+
"improve": "changelog/improve",
53+
"docs": "changelog/docs"
54+
}
55+
ignored_types: |
56+
[
57+
"chore"
58+
]
59+
ignore_label: "changelog/ignore"

CONTRIBUTING.md

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,23 @@ Contributions are welcome via GitHub pull requests.
55

66
## Use Semantic Commits
77

8-
Ensure PR names and commit messages use semantic naming conventions, for example:
9-
- `fix: fixed a bug`
10-
- `feat: added a cool feature`
11-
- `refactor: made some big changes`
12-
- `ci: changes to CI configs and scripts`
13-
- `chore: other commits`
14-
- [other conventional commit types](https://github.com/commitizen/conventional-commit-types/blob/master/index.json)
8+
We use [semantic commits](https://www.conventionalcommits.org/en/v1.0.0/) to help us automatically generate changelogs and release notes.
159

10+
__The name of your PR must be a semantic commit message__, with one of the following prefixes:
11+
12+
- `fix:` (bug fixes)
13+
- `feat:` (new features)
14+
- `improve:` (improvements to existing features)
15+
- `refactor:` (code changes that neither fixes a bug nor adds a feature)
16+
- `revert:` (reverts a previous commit)
17+
- `test:` (adding missing tests, refactoring tests; no production code change)
18+
- `ci:` (changes to CI configuration or build scripts)
19+
- `docs:` (documentation only changes)
20+
- `chore:` (ignored in changelog)
21+
22+
To indicate a breaking change, add `!` after the prefix, e.g. `feat!: my commit message`.
23+
24+
Please do NOT include a scope, as we do not use them, for example `feat(deploy): my commit message`.
1625

1726
## Sign Your Work
1827

0 commit comments

Comments
 (0)