A 1 minute read written by
The discussion of an automatic release was started many years ago, and there are several options for how to do this (none mentioned, none forgotten). Then I came across @Rultor by accident on Twitter.
no.bekk.bekkopen:NoCommons is a small library for validating, generating and manipulating data typical for Norwegian domains. SSN, org-nr, names etc. And when maintaining a small, quite static, open source library like this on GitHub, we need a smooth automatic release path that is easy and fast to use when a release has to be published. Maybe I changed my computer since last time and need to restore GPG-keys, or even worse, generate new keys and distribute them. And when time goes by, a new maintainer steps up and needs to release. How was that done again?
@Rultor is an open source robot living on GitHub. Yegor256 is the maintainer of this robot and we all can use it. Just talk to @Rultor in a GitHub issue and it will tell you what to do to get started. This is what I did:
- Change parent-pom of project to com.jcabi:parent (not necessary, but quite convenient)
- Encrypt setting.xml, private- and public-key (GPG) with @Rultor and commit them to NoCommons
- Create .rultor.yml and commit to NoCommons with me as commanders and architect
@Rultor needs write access to the repository to publish tags and GitHub releases, so I added it as a collaborator in GitHub.
Now I can comment this in an issue after merging a PR:
@rultor release, tag=`0.9.0`
So now, let's look at GitHub Actions next…