https://github.com/chantsune/release-with-commit
Create release with commit
https://github.com/chantsune/release-with-commit
github github-actions
Last synced: 8 months ago
JSON representation
Create release with commit
- Host: GitHub
- URL: https://github.com/chantsune/release-with-commit
- Owner: ChanTsune
- License: mit
- Created: 2020-07-22T05:32:49.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2025-06-03T15:56:20.000Z (8 months ago)
- Last Synced: 2025-06-04T02:00:02.721Z (8 months ago)
- Topics: github, github-actions
- Language: TypeScript
- Homepage:
- Size: 2.99 MB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# GitHub Action - Release-with-commit
This GitHub Action (written in TypeScript) wraps the [GitHub Release API](https://developer.github.com/v3/repos/releases/), specifically the [Create a Release](https://developer.github.com/v3/repos/releases/#create-a-release) endpoint, to allow you to leverage GitHub Actions to create releases.
## Usage
### Pre-requisites
Create a workflow `.yml` file in your `.github/workflows` directory. An [example workflow](#example-workflow---release-with-commit) is available below. For more information, reference the GitHub Help Documentation for [Creating a workflow file](https://help.github.com/en/articles/configuring-a-workflow#creating-a-workflow-file).
### Inputs
For more information on these inputs, see the [API Documentation](https://developer.github.com/v3/repos/releases/#input)
- `regexp`: The pattern of commit message. Create a release if commit message match this.
- `regexp_options`: The option of `regexp`. for more details, see [Advanced Searching With Flags](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Advanced_Searching_With_Flags)
- `tag_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 using `body_path`.
- `body_path`: A file with contents describing the release. Optional, and not needed if using `body`.
- `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. Default `false`
### Outputs
For more information on these outputs, see the [API Documentation](https://developer.github.com/v3/repos/releases/#response-4) for an example of what these outputs look like
- `id`: The release ID
- `html_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`](https://www.github.com/actions/upload-release-asset) GitHub Action
- `created`: The Boolean value of whether a release was created
- `tag_name`: The name of the created tag_name
### Example workflow - release with commit
On every `push` to a commit message matching the `regexp`, [create a release](https://developer.github.com/v3/repos/releases/#create-a-release):
```yaml
name: Release with commit
on:
push:
branches:
- master
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: ChanTsune/release-with-commit@v2.8.0
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](https://help.github.com/en/articles/creating-releases), as well as a [`release` event](https://developer.github.com/v3/activity/events/types/#releaseevent), which could be handled by a third party service, or by GitHub Actions for additional uses, for example the [`@actions/upload-release-asset`](https://www.github.com/actions/upload-release-asset) GitHub Action. This uses the `GITHUB_TOKEN` provided by the [virtual environment](https://help.github.com/en/github/automating-your-workflow-with-github-actions/virtual-environments-for-github-actions#github_token-secret), so no new token is needed.
## Contributing
We would love you to contribute to `@ChanTsune/release-with-commit`, pull requests are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) for more information.
## License
The scripts and documentation in this project are released under the [MIT License](LICENSE)