GitHub Action
Release That
An opinionated GitHub Action to ease the release of a repository using semantic versioning
Minimal setup to enable semantic release on any repository
-
Step 1: Add the following content inside
.github/workflows/release-that.yaml
filename: Release that on: [push] jobs: release-that: runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v3 - name: Release That uses: rlespinasse/release-that@v1
-
Step 2: Enjoy your automatic release system
Whether to make a release in dry-run
mode. The outputs act like a release was published.
- uses: rlespinasse/release-that@v1
with:
dry-run: true
Remove prefix from released version, like v1.0.0
-> 1.0.0
(doesn't apply to major tag)
- uses: rlespinasse/release-that@v1
with:
without-prefix: true
Activate the publication a major tag based on released version. Possible values true
, false
, and auto
.
If this tag already exists, it will be overwritten.
- uses: rlespinasse/release-that@v1
with:
major-tag: true
By default, the value is auto
to activate it (like true
) on some conditions, otherwise, it's skip (like false
).
- the repository is a GitHub action due to metadata file presence
action.yml
oraction.yaml
(to follow GitHub action recommandation) - do not hesitate to propose the next condition through issue or pull-request
Whether to use a Personal Access Token instead of the default GitHub Token for release
- uses: rlespinasse/release-that@v1
with:
github-token: ${{ secrets.YOUR_PERSONAL_ACCESS_TOKEN }}
By default ${{ github.token }}
is used to make a release.
Due to limitation for security concerns, if you want to build a workflows that react when a new release is made, you must use a Personal Access Token.
- major_tag_published: Whether a major tag was published (
true
orfalse
) - major_tag: Value of the published major tag, otherwise empty (e.g.
v1
)
And the following outputs from cycjimmy/semantic-release-action (see Under the wood
section).
- new_release_published: Whether a new release was published (
true
orfalse
) - new_release_version: Version of the new release. (e.g.
1.3.0
) - new_release_major_version: Major version of the new release. (e.g.
1
) - new_release_minor_version: Minor version of the new release. (e.g.
3
) - new_release_patch_version: Patch version of the new release. (e.g.
0
) - last_release_version: Version of the previous release, if there was one. (e.g.
1.2.0
)
This is a wrapper around cycjimmy/semantic-release-action@v2 action with
- No mandatory configuration like
package.json
or.releaserc
files - Support of Default branches
- with the addition of
vN.x
kind of branches
- with the addition of
- Auto-publication of a GitHub release with changelog based on the commit history
In a near future, the release-that
action will support more release system with an opinionated way of doing it.