Released my first Jenkins plugin
https://github.com/jenkinsci/hckrnews-plugin
With this plugin, you can read hacker news top time line sitting in front of CI server. So you can read top topics about technology and so on at the same time building your project. Does it sound good?
How to publish Jenkins plugin?
Make GitHub repository
Normal Maven project needs only src/ and pom.xml. Jenkins plugin project is not exception. Write right .gitignore, and ignore target/ and work/ directory. These are not necessary.
Create new jenkins-ci account
Visit here. Create your new account.
Write settings.xml your account information
Your account name, and password got from above process should be written in ~/.m2/settings.xml
like below.
<settings>
・・・
<servers>
<server>
<id>maven.jenkins-ci.org</id>
<username>XXXXXX</username>
<password>XXXXXX</password>
</server>
</servers>
・・・
</settings>
Application for forking repository
Send an email to community mailing list in Japan. If you want to send other community, search here Soon your repository is forked to original jenkinsci organization.
Modify pom.xml
Add some line. SCM repository url should be written in your project pom.xml
<scm>
<connection>scm:git:ssh://github.com/jenkinsci/XXXXXXXX.git</connection>
<developerConnection>scm:git:ssh://[email protected]/jenkinsci/XXXXXXXX.git</developerConnection>
<url>https://github.com/jenkinsci/XXXXXXXX.git</url>
</scm>
Release!
Type below command.
$ mvn release:prepare release:perform
One this your should pay attention to is not to add -Dusername
and -Dpassword
options. These are not used for GitHub but jenkinsci.org
Congratulations!!
Future
In fact, I make this plugin with no experience of writing Java, of course maven. Therefore I have to study these tool and Java grammar. In addition to this, I learned how to write some design patterns with coding in accordance with OO programming.
I also wrote some test codes with JUnit in maven. TDD is the method with which I want to develop. In this time, first I wrote unit test code and second logic code. This is fun for me because my code’s quality seems to be kept easily. I want to keep writing test code first. This is the best practice for my developing.
This plugin has only simple functions, however, this experience is sufficient value as software engineer. In the future, I will seize the moment and make more my own plugins.
Ultimately, please use this plugin. It brings to you a new continuous integration life.
Thank you.