Quick reference: Releasing to jenkins-ci.org
No questions. This is the ultimate guide on how to release a plugin to jenkins-ci.org:
But when I’m in the dev loop already, I simply want to skip those steps and go straight to what really matters: release the plugin and update the documentation. And so, the short guide below is a note for myself. The commands are easy, but I wanted to keep them as a checklist :-)
Implementation is done and changes are committed. Since I use ssh to communicate with GitHub, double-check if I have the right keys.
ssh -T git@github.com
If permission is denied, ops, my key is not there! Add it.
ssh-add {home}/.ssh/github_rsa
Why is it important? Authentication is not the first step. If it fails, there will be a little mess to clean up:
Clean up a failed release in the Jenkins public repository
Next, release.
mvn release:prepare release:perform
Since I’m forced to use ssh because of my mismatching credentials (GitHub and jenkins-ci.org servers), there is no need to provide user and password parameters in the command above. Explanation on the Jenkins guide provided on top of this page.
At this point, a new tag has already been created in the plugin repository of GitHub jenkinsci page with two commits:
[maven-release-plugin] prepare release <plugin-id-and-version≤>
[maven-release-plugin] prepare for next development iteration
The same commits will be created locally. So, simply push it to my own fork to keep it in sync:
git push origin master
Now, This branch is even with jenkinsci:master.
Finally, update the Jenkins Wiki page:
- Instructions (if applicable)
- Changelog (always!)
Done!