Top / Java / Jenkins / プラグイン開発のTIPS集 / Jenkins CLI

概要・事前準備

Jenkins にはJenkinsの操作をリモートで行うためのコマンドラインのインタフェース Jenkins CLI という機構があります。コレを使うとリモートからJenkinsを再起動したり、プラグインをインストールしたり、ジョブをビルドしたり、なんて事ができるわけですね。

実際にローカルファイルのプラグインファイルをリモートでインストールする方法として ローカルのプラグインをインストール こんな感じで使い方をまとめました。

ちなみに、コマンドの一覧は

Jenkinsの管理 >> Jenkins CLI

などにまとまっています。

pic01.png

さて以下、ローカルのプラグインをインストール ココにでてくる jenkins-cli.jar がすでにダウンロード済みの前提で話を進めたいと思います。

自作する

さて今回は、このJenkins CLIを自作してみたいと思いますが、方法は簡単で CLICommand クラスを拡張するだけです。以下サンプルコード。

package nu.mine.kino.jenkins.plugins.projectmanagement.commands;

import hudson.Extension;
import hudson.cli.CLICommand;
import hudson.model.AbstractBuild;
import hudson.model.AbstractProject;

import org.kohsuke.args4j.Argument;

/**
 * @author Masatomi KINO
 * @version $Revision: 863 $
 */
@Extension
public class HelloCommand extends CLICommand {

    @Argument(metaVar = "JOB", usage = "プロジェクト名を指定します。", index = 0, required = true)
    public AbstractProject<?, ?> job;

    @Argument(metaVar = "MSG1", usage = "メッセージ指定1", index =  1, required = true)
    public String msg1;

    @Argument(metaVar = "MSG2", usage = "メッセージ指定2", index = 2, required = false)
    public String msg2;

    @Override
    public String getShortDescription() {
        return "Hello Worldなサンプルです";
    }

    @Override
    protected int run() throws Exception {
        stdout.println("Hello World, " + msg1 + ", " + msg2);
        final AbstractBuild<?, ?> build = job.getLastSuccessfulBuild();
        stdout.println(build.getNumber());
        stdout.println(build.getUrl());

        return 0;
    }

}

こんだけです。コンストラクタで渡される引数にannotationされた index番号が引数の順番、requiredが必須かどうか、などなど見たままって感じですね。

Jenkinsを再起動し先ほどのコマンドの一覧を見てみると

pic02.png

確かに追加されていることが分かります。

pic03.png
c:\tmp>java -jar jenkins-cli.jar -s http://localhost:8080/jenkins/ hello Test messege1 message2

実行結果は以下の通り。

Hello World, messege1, message2
1
job/Test/1/

c:\tmp>


この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  

Top / Java / Jenkins / プラグイン開発のTIPS集 / Jenkins CLI

現在のアクセス:3709


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS