LoginSignup
10
9

More than 5 years have passed since last update.

Jenkins Pluginを作成してみた。

Last updated at Posted at 2013-06-22

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の接続にも使っちゃってビルドが失敗します。

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

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9