create-tag-action
Auto create tags from commit or package.json
Inputs
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.body
An optional body for the release.
Outputs
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 }}"
Example Usage
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 }}
See Also
- 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
.
Example
License
The scripts and documentation in this project are released under the MIT License