Quick reference: Releasing to jenkins-ci.org

February 16, 2016

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:

Done!