Edited at

Jenkins Pluginを作成してみた。

More than 5 years have passed since last update.

Jenkins Pluginを作成/公開してみました。

Call Remote Job Plugin

Jenkinsから、リモートのJenkinsのタスクを起動できるプラグインです。

リモートのタスクが失敗すると、こちらのタスクも失敗で終わります。

複数チーム・複数プロダクトで出来上がるプロダクトを作るときにチームごとにJenkinsを分けて管理したい、とかいう時に使ってください。

で、Jenkinsプラグイン公開手順が、巷の情報や、本の情報だとうまく行かなかったので、ここで公開しておきます。

Jenkins Pluginのリリース中に

The git-clone command failed.

とか、

Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.6:deploy (default-deploy) on project call-remote-job-plugin: Failed to deploy artifacts: Could not transfer artifact org.ukiuni.callOtherJenkins:call-remote-job-plugin:hpi:1.0.11 from/to maven.jenkins-ci.org (http://maven.jenkins-ci.org:8081/content/repositories/releases): Failed to transfer file: http://maven.jenkins-ci.org:8081/content/repositories/releases/org/ukiuni/callOtherJenkins/call-remote-job-plugin/1.0.11/call-remote-job-plugin-1.0.11.hpi. Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1]

的なログが出たら、このページは役に立つかもしれません。

では、リリース手順。



1. githubリポジトリを作ります。

https://github.com/ukiuni/call-remote-job-plugin な感じです。

ハイフン区切り、小文字が習慣だそうです。

上げるべきファイルは

/src

pom.xml

だけです。あとは適時。mvnプロジェクトですと、targetフォルダとかできてると思いますが、それは必要ありません。.gitignoreファイルで設定してください。サンプルはこちら


2. jenkinsci.orgのアカウントを作ります。

こちらでアカウントを作成します。


3. ~/.m2/setting.xmlにjenkinsci.orgのアカウント情報を追記

こんな感じで、2でとったアカウントをsetting.xmlの末尾に入力します。


~/.m2/setting.xml

<settings>

・・・
<servers>
<server>
<id>maven.jenkins-ci.org</id>
<username>XXXXXX</username>
<password>XXXXXX</password>
</server>
</servers>

</settings>



4. メーリングリストにお願いをする。

日本Jenkinsユーザ会にお願いして、gitリポジトリのフォークと、jenkinsci.orgのコンポーネント追加をお願いします。

私がやったのは、こんなかんじでした。曽我部さん、ありがとうございました。


5. pom.xmlを修正する。

いくつか修正します。

の中身、バージョン名の最後は-SNAPSHOTにします。

タグをルートに追加します。4でフォークしてもらったリポジトリを追記。


pom.xml(抜粋)

<scm>

<connection>scm:git:ssh://github.com/jenkinsci/XXXXXXXX.git</connection>
<developerConnection>scm:git:ssh://git@github.com/jenkinsci/XXXXXXXX.git</developerConnection>
<url>https://github.com/jenkinsci/XXXXXXXX.git</url>
</scm>


6. gitにssh接続できるように設定します。

.ssh/configに接続情報を追記します。


~/.ssh/config

Host github.com

HostName github.com
IdentityFile /Users/user/.ssh/github.key
User XXXXX

/Users/user/.ssh/github.key にはssh-genkeyで鍵を作って、chmod 600 して、githup.comに/Users/user/.ssh/github.key.pubをアップロードしておきます。

ssh git@github.comにアクセス(アカウントはgitのまま)して、

You've successfully authenticated, but GitHub does not provide shell access.

と表示されれば、OK.


7. リリースする。

mvnプロジェクトのある(pom.xmlのある)ディレクトリで、以下のコマンドを実行します。

mvn release:prepare release:perform

コツは-Dusernameと-Dpasswordをつけ「ない」こと。usernameとpasswordは本来jenkinsci.orgへの接続に使うものなのに、コマンドにつけちゃうと、github.comの接続にも使っちゃってビルドが失敗します。

以上で、無事リリースが完成します。