You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
GitHub Action
laminas/automatic-releases
1.0.1
This project is a Github Action that allows maintainers of open-source projects that follow SemVer to automate the automation of releases.
To use this automation in your own repository, copy the example/.github
workflows into your own project:
cd /tmp
git clone https://github.com/laminas/automatic-releases.git
cd /path/to/your/project
cp -r /tmp/automatic-releases/examples/.github ./.github
git add .github
git commit -m "Added release automation"
Then add following secrets to your project or organisation:
GIT_AUTHOR_NAME
- full name of the author of your releases: can be the name of a bot account.GIT_AUTHOR_EMAIL
- email address of the author of your releases: can be an email address of a bot account.SIGNING_SECRET_KEY
- a password-less private GPG key in ASCII format, to be used for signing your releases: please use a dedicated GPG subkey for this purpose. Unsigned releases are not supported, and won't be supported.ORGANIZATION_ADMIN_TOKEN
- if you use the file fromexamples/.github/workflows/release-on-milestone-closed.yml
, then you have to provide aORGANIZATION_ADMIN_TOKEN
, which is a github token with administrative rights over your organisation (issued by a user that has administrative rights over your project). This is required for thelaminas:automatic-releases:switch-default-branch-to-next-minor
command, because changing default branch of a repository currently requires administrative token rights. You can generate a token from your personal access tokens page.
Assuming your project has Github Actions enabled, each time you close a milestone, this action will perform all following steps (or stop with an error):
- determine if all issues and pull requests associated with this milestone are closed
- determine if the milestone is named with the SemVer
x.y.z
format - create a changelog by looking at the milestone description and associated issues and pull requests
- select a branch for the release:
- if a branch matching
x.y.z
exists, it will be selected - otherwise,
master
will be used
- if a branch matching
- create a tag named
x.y.z
on the selected branch, with the generated changelog - publish a release named
x.y.z
, with the generated tag and changelog - create (if applicable), a pull request from the selected branch to the next release branch
- create (if necessary) a "next minor" release branch
x.y+1.z
- switch default repository branch to newest release branch
Please read the feature/
specification for more detailed scenarios on how the tool is supposed
to operate.