Auto create tags from commit or package.json
token
YourGITHUB_TOKEN
. This is required. Why do we needtoken
? Read more here: About the GITHUB_TOKEN secret. Default:${{ github.token }}
version
Create tag for specified version. Exampe:version: v1.0.0
test
The regular expression matches the submitted content. Exampe:test: '[R|r]elease[d]\s+[v|V]\d(\.\d+){0,2}'
package-path
The path of thepackage.json
file. Defaultpackage.json
.release
Optionally marks this tag asrelease
. Set totrue
to enable.prerelease
Optionally marks this release asprerelease
. Set totrue
to enable.draft
Optionally marks this release as adraft
release. Set to true to enable.body
An optional body for the release.
version
The version number of the tag created, example:v1.0.0
.versionNumber
The version number of the tag created, example:1.0.0
.preversion
The previous tag version number, example:v1.0.0
.preversionNumber
The previous tag version number of the tag created. example:1.0.0
.successful
The tag was successfully created.majorVersion
MAJOR version when you make incompatible API changes.minorVersion
MINOR version when you add functionality in a backwards compatible manner, and.patchVersion
PATCH version when you make backwards compatible bug fixes.
- run: echo "version - ${{ steps.create_tag.outputs.version }}"
- run: echo "version || preversion - ${{ steps.create_tag.outputs.version || steps.create_tag.outputs.preversion }}"
- run: echo "versionNumber - ${{ steps.create_tag.outputs.versionNumber }}"
- run: echo "versionNumber || preversionNumber - ${{ steps.create_tag.outputs.versionNumber || steps.create_tag.outputs.preversionNumber }}"
- run: echo "majorVersion - ${{ steps.create_tag.outputs.majorVersion }}"
- run: echo "minorVersion - ${{ steps.create_tag.outputs.minorVersion }}"
- run: echo "patchVersion - ${{ steps.create_tag.outputs.patchVersion }}"
- run: echo "preversion - ${{ steps.create_tag.outputs.preversion }}"
- run: echo "successful - ${{ steps.create_tag.outputs.successful }}"
First, we must listen for push
events
on:
push:
branches:
- master
paths-ignore:
- '.github/**/*.yml'
- '.gitignore'
Compare the tag version
number in package.json
with the last tag and automatically generate tags
- run: echo "previous_tag=$(git describe --tags --abbrev=0 2>/dev/null || echo '')" >> $GITHUB_ENV
- name: Create Tag
id: create_tag
uses: jaywcjlove/create-tag-action@main
if: env.previous_tag
with:
package-path: ./package.json
Or, Compare the tag version
number in the commit content
with the last tag and automatically generate tags
- run: echo "previous_tag=$(git describe --tags --abbrev=0 2>/dev/null || echo '')" >> $GITHUB_ENV
- name: Create Tag
id: create_tag
uses: jaywcjlove/create-tag-action@main
if: env.previous_tag
with:
test: '[R|r]elease[d]\s+[v|V]\d(\.\d+){0,2}'
Use steps.<job_id>.outputs.successful
to determine whether the version is created successfully, and a changelog will be automatically generated.
- name: Generate Changelog
id: changelog
uses: jaywcjlove/changelog-generator@main
if: steps.create_tag.outputs.successful
with:
head-ref: ${{steps.create_tag.outputs.version}}
filter-author: (jaywcjlove|小弟调调™|dependabot\[bot\]|Renovate Bot)
filter: (^[\s]+?[R|r]elease)|(^[R|r]elease)
Use steps.<job_id>.outputs.successful
to determine whether the version is created successfully, the creation has been released
- name: Create Release
uses: ncipollo/release-action@v1
if: steps.create_tag.outputs.successful
with:
token: ${{ secrets.GITHUB_TOKEN }}
name: ${{ steps.create_tag.outputs.version }}
tag: ${{ steps.create_tag.outputs.version }}
body: |
```bash
npm i @uiw/react-heat-map@${{steps.create_tag.outputs.versionNumber}}
```
${{ steps.changelog.outputs.compareurl }}
${{ steps.changelog.outputs.changelog }}
OR use jaywcjlove/create-tag-action@main
:
- name: Generate Changelog
uses: jaywcjlove/create-tag-action@main
if: steps.create_tag.outputs.successful
with:
version: ${{steps.create_tag.outputs.version}}
release: true
body: |
```bash
npm i @uiw/react-heat-map@${{steps.create_tag.outputs.versionNumber}}
```
${{ steps.changelog.outputs.compareurl }}
${{ steps.changelog.outputs.changelog }}
- Github Release Changelog Generator A GitHub Action that compares the commit differences between two branches
- Github Action Contributors Github action generates dynamic image URL for contributor list to display it!
- Generated Badges Create a badge using GitHub Actions and GitHub Workflow CPU time (no 3rd parties servers)
- Create Coverage Badges Create coverage badges from coverage reports. (no 3rd parties servers)
- Github Action package Read and modify the contents of
package.json
.
The scripts and documentation in this project are released under the MIT License