A GitHub Action for a GitHub Release creation with Assets and Changelog on new Git Tag in the repository.
v
prefix out of the boxAdd changes to CHANGELOG.md
. For example:
## [3.4.0] - 2020-07-10
### Added
- Glob pattern support
- Unit Tests
- Log version
### Fixed
- Exception on margins larger than context of changelog
- Nil pointer exception in 'release' package
### Changed
- Refactor JavaScript wrapper
## [3.3.0] - 2020-06-27
### Added
- Wrapper script: allow execution on Windows runners
### Changed
- Action execution through Git: from Docker to NodeJS
[3.4.0]: https://github.com/anton-yurchenko/git-release/compare/v3.3.0...v3.4.0
[3.3.0]: https://github.com/anton-yurchenko/git-release/releases/tag/v3.3.0
Tag a commit with Version (according to semver.org)
Push and watch Git-Release publishing a Release on GitHub 😉
Change the workflow to be triggered on new Tag:
'*'
or a more specific like 'v*'
:on:
push:
tags:
- "v[0-9]+.[0-9]+.[0-9]+"
Add Release step to your workflow:
- name: Release
uses: docker://antonyurchenko/git-release:v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
args: build/*.zip
Configure Release step:
arguments
(divided by one of: new line
, space
, comma
, pipe
)Environmental Variable | Allowed Values | Default Value | Description |
---|---|---|---|
DRAFT_RELEASE |
true /false
|
false |
Publish a draft release |
PRE_RELEASE |
true /false
|
false |
Mark release non-production ready |
CHANGELOG_FILE |
* |
CHANGELOG.md |
Changelog filename (set none to silence a warning message if file does not exist) |
ALLOW_EMPTY_CHANGELOG |
true /false
|
false |
Allow publishing a release without changelog |
TAG_PREFIX_REGEX |
* |
[v]? |
Version tag prefix regex, for example [a-z-]* in order to parse prerelease-1.1.0
|
RELEASE_NAME |
* |
"" | Complete release title (should not be combined with RELEASE_NAME_PREFIX and RELEASE_NAME_SUFFIX ) |
RELEASE_NAME_PREFIX |
* |
"" | Release title prefix |
RELEASE_NAME_SUFFIX |
* |
"" | Release title suffix |
UNRELEASED |
update /delete
|
"" | Set to update in order to allow deletion and recreation of the same release and its tag (intended to be used for unreleased /latest release only). Set to delete in order to delete a previously published unreleased /latest release. |
UNRELEASED_TAG |
latest |
* |
Use a custom tag for unreleased /latest release (tag will be created/deleted automatically) |
Configuration is provided as environmental variables (strings), so do not forget to enclose boolean values with quotes
Execute git-release through JavaScrip Wrapper on Windows Runners.
- name: Release
uses: anton-yurchenko/git-release@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
args: |
build\\darwin-amd64.zip
build\\linux-amd64.zip
build\\windows-amd64.zip
latest / v1 / v1.2 / v1.2.3
. You may lock to a certain version instead of using latest.v4
)docker://antonyurchenko/git-release:latest
to anton-yurchenko/git-release@main
git-release
operates assets with pattern matching, this means that it is unable to validate whether an asset existsuses: docker://antonyurchenko/git-release:latest
to uses: docker://ghcr.io/anton-yurchenko/git-release:latest
/
) in asset filenames will be replaced with dashes (-
)git-release
may crash when executed against a not supported changelog file format. Make sure your changelog file is compliant to one of the supported formats.MIT © 2019-present Anton Yurchenko