create-tag-action

build-test

Auto create tags from commit or package.json

Inputs

token

Your GITHUB_TOKEN. This is required. Why do we need token? Read more here: About the GITHUB_TOKEN secret

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 the package.json file.

Outputs

- 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

- name: Create Tag
  id: create_tag
  uses: jaywcjlove/create-tag-action@main
  with:
    token: ${{ secrets.GITHUB_TOKEN }}
    package-path: ./package.json

Or, Compare the tag version number in the commit content with the last tag and automatically generate tags

- name: Create Tag
  id: create_tag
  uses: jaywcjlove/create-tag-action@main
  with:
    token: ${{ secrets.GITHUB_TOKEN }}
    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:
    token: ${{ secrets.GITHUB_TOKEN }}
    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 }}

Example

License

The scripts and documentation in this project are released under the MIT License