Skip to content

Commit fd31c1d

Browse files
joris974z0isch
andauthored
feat: add semantic-release with conventional commits (#159)
* feat: add semantic-release with conventional commits * Update RELEASE.md Co-authored-by: AJ Ruf <z0isch@gmail.com> * Update README.md * fix: simplify README release section and fix RELEASE.md numbering --------- Co-authored-by: AJ Ruf <z0isch@gmail.com>
1 parent bce447f commit fd31c1d

4 files changed

Lines changed: 59 additions & 30 deletions

File tree

.github/workflows/release.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
- rc/*
8+
9+
permissions:
10+
contents: write
11+
12+
jobs:
13+
release:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v6
17+
- uses: cycjimmy/semantic-release-action@v6.0.0
18+
with:
19+
extra_plugins: |
20+
conventional-changelog-conventionalcommits
21+
@semantic-release/exec
22+
env:
23+
FORCE_COLOR: 1
24+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
25+
GITHUB_TOKEN: ${{ github.token }}

.releaserc.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
plugins:
2+
- - '@semantic-release/commit-analyzer'
3+
- preset: 'conventionalcommits'
4+
- - '@semantic-release/release-notes-generator'
5+
- preset: 'conventionalcommits'
6+
- - '@semantic-release/github'
7+
- successCommentCondition: false
8+
9+
# Update dist, in case Dependabot PRs merged without doing so
10+
- - '@semantic-release/exec'
11+
- prepareCmd: 'yarn install && yarn run build'
12+
13+
- - '@semantic-release/git'
14+
- assets:
15+
- 'dist/**'
16+
- 'package.json' # commit updated version back to source
17+
message: 'chore(release): update dist and package.json'
18+
19+
- '@semantic-release/npm'
20+
21+
branches:
22+
- main
23+
- name: rc/*
24+
prerelease: '${name.replace(/^rc\//, "rc-")}'

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Utilities for constructing and using query parameters.
88
yarn add @freckle/query-params
99
```
1010

11-
## Versioning and release process
11+
## Release
1212

1313
See [RELEASE.md](./RELEASE.md).
1414

RELEASE.md

Lines changed: 9 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,14 @@
1-
# Releases
1+
# Release
22

3-
## Versioning
3+
This project uses [semantic-release](https://github.com/semantic-release/semantic-release)
4+
with [conventional commits](https://www.conventionalcommits.org/) to trigger releases.
45

5-
Versioned tags will exist, such as `v1.0.0` and `v2.1.1`. Branches will exist
6-
for each major version, such as `v1` or `v2` and contain the newest version in
7-
that series.
6+
To trigger a release in this project, merge a commit to `main` prefixed with:
87

9-
## Release process
8+
1. `fix:` to trigger a patch release,
9+
2. `feat:` to trigger minor, or
10+
3. Use `<type>!:` or the `BREAKING CHANGES: <change>` footer to trigger major
1011

11-
Given a latest version of v1.0.1,
12+
Pre-releases can be made by pushing to an `rc/*` branch.
1213

13-
Is this a new major version?
14-
15-
If yes,
16-
17-
```console
18-
git checkout main
19-
git pull
20-
git checkout -b v2
21-
git tag -s -m v2.0.0 v2.0.0
22-
git push --follow-tags
23-
```
24-
25-
Otherwise,
26-
27-
```console
28-
git checkout main
29-
git pull
30-
git checkout v1
31-
git merge --ff-only -
32-
git tag -s -m v1.0.2 v1.0.2 # or v1.1.0
33-
git push --follow-tags
34-
```
14+
For more details, see the [Semantic Release](https://illuminate.atlassian.net/wiki/spaces/PENG/pages/17952735277/Semantic+Release) documentation.

0 commit comments

Comments
 (0)