This plugin can be executed on every push to your release branch (e.g. main) and will create a new release pull-request with all of your custom adjustments like an updated changelog as preparation for the next release. After you have merged the "release"-pull-request with all your desired changes, a new release / tag will be created for you.
Create a new workflow like .woodpecker/release-helper.yml
:
when:
event: push
branch: ${CI_REPO_DEFAULT_BRANCH}
steps:
release-helper:
image: woodpeckerci/plugin-ready-release-go:<version>
settings:
git_email: my-email@example.org
github_token:
from_secret: GITHUB_TOKEN
# release_branch: 'custom-release-branch' # default: main
# pull_request_branch_prefix: 'next-release/'
# debug: true
- Setup ready-release-go on your repository by adding a config file and a workflow file
- On every push to your default branch a pull-request will be created and updated
- You can review the pull-request and merge it when you are ready
- The plugin will create a new release
- get latest release => tag
- get all commits since commit of last tag
- get all prs of those commits (if they have a pr associated)
- get all labels of those prs
- get next version based on labels of PRs
- get changelog based on labels of PRs
- Automatically create release pull-request
- Automatically update release pull-request
- Create a release / tag after "release"-pull-request got merged
- Handle -rc versions
- Support first release (no previous tags)
- Support defining next version manually (can be done by changing the version on the release pull-request title / commit message)
- Support more forges:
- Gitea
- Gitlab
This plugin is heavily inspired by release-drafter and shipjs. Thanks for the great work! Compared to the mentioned tools ready-release-go
is not requiring a npm package and can be used with any kind of programming language, changelog tool and commit style.