This GitHub Action (written in TypeScript) wraps the GitHub Release API, specifically the Create a Release endpoint, to allow you to leverage GitHub Actions to create releases.
Create a workflow .yml
file in your .github/workflows
directory. An example workflow is available below. For more information, reference the GitHub Help Documentation for Creating a workflow file.
For more information on these inputs, see the API Documentation
regexp
: The pattern of commit message. Create a release if commit message match this.regexp_options
: The option ofregexp
. for more details, see Advanced Searching With Flagstag_name
: The name of the tag for this release.release_name
: The name of the release.body
: Text describing the contents of the release. Optional, and not needed if usingbody_path
.body_path
: A file with contents describing the release. Optional, and not needed if usingbody
.draft
:true
to create a draft (unpublished) release,false
to create a published one. Default:false
prerelease
:true
to identify the release as a prerelease.false
to identify the release as a full release. Defaultfalse
For more information on these outputs, see the API Documentation for an example of what these outputs look like
id
: The release IDhtml_url
: The URL users can navigate to in order to view the release. i.e.https://github.com/octocat/Hello-World/releases/v1.0.0
upload_url
: The URL for uploading assets to the release, which could be used by GitHub Actions for additional uses, for example the@actions/upload-release-asset
GitHub Actioncreated
: The Boolean value of whether a release was createdtag_name
: The name of the created tag_name
On every push
to a commit message matching the regexp
, create a release:
name: Release with commit
on:
push:
branches:
- master
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: ChanTsune/[email protected]
with:
regexp: "Release ((\\d+([.]\\d+)*)-(alpha|beta|rc)\\d*)((\\s|\\S)*)"
regexp_options: "us"
release_name: "version $1"
tag_name: "v$1"
body: "$5"
draft: false
prerelease: false
env:
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' # This token is provided by Actions, you do not need to create your own token
This will create a Release, as well as a release
event, which could be handled by a third party service, or by GitHub Actions for additional uses, for example the @actions/upload-release-asset
GitHub Action. This uses the GITHUB_TOKEN
provided by the virtual environment, so no new token is needed.
We would love you to contribute to @ChanTsune/release-with-commit
, pull requests are welcome! Please see the CONTRIBUTING.md for more information.
The scripts and documentation in this project are released under the MIT License