Auto create tags from commit or package.json
token Your GITHUB_TOKEN. This is required. Why do we need token? Read more here: About the GITHUB_TOKEN secret. Default: ${{ github.token }}version Create tag for specified version. Exampe: version: v1.0.0test The regular expression matches the submitted content. Exampe: test: '[R|r]elease[d]\s+[v|V]\d(\.\d+){0,2}'commit The regular expression matches the submitted content. Default: {github.context.payload?.head_commit?.message}package-path The path of the package.json file. Default package.json.release Optionally marks this tag as release. Set to true to enable.prerelease Optionally marks this release as prerelease. Set to true to enable.draft Optionally marks this release as a draft 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. example: "true".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 }}"
WARNING
In the new action, you need to add the permissions configuration:
jobs:
tags:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- 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}'
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 == 'true'
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 == 'true'
with:
allowUpdates: true
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 create release:
- name: Create Release
uses: jaywcjlove/create-tag-action@main
id: release
if: steps.create_tag.outputs.successful == 'true'
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 }}
- name: Release Upload Assets
uses: jaywcjlove/github-action-upload-assets@main
continue-on-error: true
with:
tag: ${{ steps.release.outputs.version }}
asset-path: '["./target/release/sgo-*"]'
package.json.The scripts and documentation in this project are released under the MIT License