Hudson CLI and Groovy shell - Kohsuke Kawaguchi's Blog

http://weblogs.java.net/blog/kohsuke/archive/2009/05/hudson_cli_and.html
http://d.hatena.ne.jp/kkawa/20090503/p1

これはさぁ,Hudsonが一介のCIサーバから分散コンピューティングのプラットフォームに化ける第一歩なんじゃね?


...っと勝手に妄想入っちゃったけど,Hudson 1.302からコマンドラインインターフェイスCLI)が出来たんですと。Groovy Shellが実装されとるんで,次のコマンドでHudsonに接続してGroovyで操作できるとか。

$ java -jar hudson-cli.jar -s http://yourserver/hudson groovysh
Groovy Shell (1.6.0, JVM: 1.6.0_02-fastdebug)
Type 'help' or '\h' for help.
-------------------------------------------------------------------------------
groovy:000>;

実際に試してみよう思ったけどjava.netが重くて1.302のダウンロードあきらめた。
後日(連休明けとか)再チャレンジする。


(追記)試してみたんだけど,なんかエラーでるね。OSX(Java5)だからかな?一応,レポを残す。
CLIモジュールは,$HUDSON_URLに "cli" を付けた画面から入手する(例えば,http://localhost:8080/cli とか)。


クライアントの実行結果は以下の通り。

$ java -version
java version "1.5.0_16"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_16-b06-284)
Java HotSpot(TM) Client VM (build 1.5.0_16-133, mixed mode, sharing)

$ java -jar hudson-cli.jar -s http://localhost:8080 help
Exception in thread "main" java.io.IOException: Premature EOF
	at sun.net.www.http.ChunkedInputStream.readAheadBlocking(ChunkedInputStream.java:538)
	at sun.net.www.http.ChunkedInputStream.readAhead(ChunkedInputStream.java:582)
	at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:669)
	at java.io.FilterInputStream.read(FilterInputStream.java:111)
	at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2196)
	at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2191)
	at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2180)
	at hudson.remoting.Channel.<init>(Channel.java:310)
	at hudson.remoting.Channel.<init>(Channel.java:251)
	at hudson.remoting.Channel.<init>(Channel.java:239)
	at hudson.cli.CLI.main(CLI.java:70)

サーバログはこの通り(Hudsonのバージョンは 1.303)。

$ java -jar hudson.war
  :
2009/05/04 22:02:29 hudson.TcpSlaveAgentListener <init>
情報: JNLP slave agent listener started on TCP port 51054
2009/05/04 22:03:42 hudson.remoting.Channel$ReaderThread run
致命的: I/O error in channel HTTP full-duplex channel 92e8d61e-4ba3-49a2-b56e-9d0f3b0fd6a2
java.io.StreamCorruptedException
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1332)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
	at hudson.remoting.Channel$ReaderThread.run(Channel.java:727)
2009/05/04 22:03:42 hudson.model.FullDuplexHttpChannel$1 onDead
情報: Duplex-HTTP session 92e8d61e-4ba3-49a2-b56e-9d0f3b0fd6a2 is terminated