Hatena::ブログ(Diary)

Fly me to the Juno! このページをアンテナに追加 RSSフィード

2010-11-23

Xvncプラグインを使ってみた。

GUIのテストを含む場合、Linux環境だとXが必要だったり、Windowsだと権限のあるセッションが必要だったりする訳です。Linuxでは別のセッションを立ち上げて環境変数DISPLAYに設定して・・・みたいな事をすればできそうだったのですが、設定せど設定せどうまくいかず。なのであきらめていたんですが、いつの間にかHudsonにはXvncと連携するプラグインができていたので、利用してみました。Hudsonが動作している環境はUbuntu Linux 8.04です。LTS期限切れなので、もうセキュリティパッチが提供されないらしいので、近々いれかえようか。

インストールしておくもの

vncserverにはvnc4serverを使いました。tightvncserverというものもあるのですが、vnc4serverの方が情報が多かったのでそちらを選択しました。

$ sudo aptitude install vnc4server
$ sudo aptitude install imagemagick

これだけです。下記のコマンドを打って、インストールできている事を確認しましょう。

$ which vncserver
$ which import

続いてHudson環境のセットアップをば

Xvncプラグインをインストールします。XvncプラグインはHudsonのプラグインマネージャからダウンロードできます。今日インストールしたのは下記のプラグインです。

f:id:kompiro:20101123221819p:image

パスワードファイルを作成しよう

インストール後、まずはHudsonの管理画面で設定を行う前に、勝手にvnc画面にログインできないよう、パスワードファイルを作成する必要があります。下記のコマンドを打ってパスワードファイルを作成してください。

$ vncpasswd /path/to/password.file

Xvncプラグインの設定をしよう

Hudsonの管理画面を開くと下記の項目が増えています。こんな感じに設定してください。

f:id:kompiro:20101123221820p:image

写真のコマンドは下記のとおり

vncserver :$DISPLAY_NUMBER -geometry 1024x768 -PasswordFile /path/to/password.file

ジョブにXvncの設定をしよう

Xを利用したいジョブに下記の設定をしましょう。

f:id:kompiro:20101123221821p:image

終了後にスクリーンショットを撮る必要がなければ、imagemagickのインストールは不要だと思われます。

と言う事でenjoy continuous testing!

2009-06-13

ubuntuでhudsonを動かすメモ(Git plugin編)

JAMCircleのビルドで使いたいので、Gitと連携させたい。HudsonにはGit Plug-inがあるので、試してみる。すると

[workspace] $ git tag -a -f -m "Hudson Build #34" hudson-JAMCircle-34
FATAL: Could not apply tag hudson-JAMCircle-34
hudson.plugins.git.GitException: Could not apply tag hudson-JAMCircle-34
	at hudson.plugins.git.GitAPI.tag(GitAPI.java:265)
	at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:560)
	at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:521)
	at hudson.FilePath.act(FilePath.java:635)
	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:521)
	at hudson.model.AbstractProject.checkout(AbstractProject.java:830)
	at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:314)
	at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:266)
	at hudson.model.Run.run(Run.java:927)
	at hudson.model.Build.run(Build.java:112)
	at hudson.model.ResourceController.execute(ResourceController.java:93)
	at hudson.model.Executor.run(Executor.java:119)
Caused by: hudson.plugins.git.GitException: Error performing git tag -a -f -m Hudson Build #34 hudson-JAMCircle-34
	at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:302)
	at hudson.plugins.git.GitAPI.launchCommand(GitAPI.java:276)
	at hudson.plugins.git.GitAPI.tag(GitAPI.java:263)
	... 11 more
Caused by: hudson.plugins.git.GitException: Command returned status code 128: 
*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

とでる。ビルド前にリポジトリにタグ付けするが、Hudsonの実行をしているtomcat6ユーザーでgitの設定をしていないため、出る模様。tomcat6はログイン不許可(シェルは/bin/false)ってなっている。が、別にビルドシステムなので、システム単位でgit configしたった。

git config --system user.email "kompiro@..."
git config --system user.name "kompiro..."

こうするとうまくいった。

SCPもしたい

Hudsonなんでもあるね。SCPプラグインなんてものもある。それを使って設定した。

2009-06-11

ubuntuでhudsonを動かすメモ

Tomcat6をaptitudeインストールしてみて、そこの上にHudsonを起動してみた。

sudo aptitude install tomcat6

とするとTomcatのインストール後、tomcat6というTomcat起動用のユーザが追加される。なぜかgcjやらもインストールされた。たぶん使わない。

tomcat6を起動時の環境変数は、/etc/default/tomcat6

に書く。ここを見てみると、Tomcatのルートフォルダ(CATALINA_BASE)はデフォルトでは/var/lib/tomcat6となっている。Hudsonはwarファイルなので、/var/lib/tomcat6/webapps/以下にコピーすれば動く。ふつうのTomcatならば、confフォルダは$CATALINA_BASE/confにあるが、ubuntuの流儀では/etc/tomcat6となる。tomcat6でもhttp://wiki.hudson-ci.org/display/JA/Tomcati18n問題は修正されていないので、

<Connector port="8080" URIEncoding="UTF-8"/>

の「URIEncoding="UTF-8"」を/etc/tomcat6/server.xmlに追加する。

Hudsonのデータは$HOME/.hudsonに保存されるが、Tomcat起動用のユーザーのところに保存されるのも困るので、データを/var/hudsonに配置したい。HudsonではシステムプロパティHUDSON_HOMEにパスが設定されていればよいので、「-DHUDSON_HOME=/var/hudson」という引数を追加したい。追加する場所は/etc/default/tomcat6内のJAVA_OPTSを次のように指定する。

JAVA_OPTS="-Djava.awt.headless=true -DHUDSON_HOME=/var/hudson -Xmx128M"
  • Xmxを追加してるのはヒープ領域を一応確保しておくため。

2008-02-13

Hudsonに一目惚れ

CIをするための環境を調査。昔はCruiseControlとか、Continuousとか使っていましたが、かねがね噂を聞いていたHudsonを動かしてみた。今日TracHudsonPluginを見て動かそうと思ったんですけれども。これすごいですね。何がすごいって

  • ダウンロードしなくてもJava Web Startを使ってちょちょっと試せちゃう。
  • ダウンロードしてもこんなコマンド一個で動く
java -jar hudson.war
  • ちょっと試すだけだったらAPを立てずにすむ。
  • ブラウザからほとんど全ての操作ができてしまう。
  • 特にバッチとかも不要
  • crontab互換の記法を使って定時バッチを動かす事ができる
  • master/slave機能もついている
  • Tracとの統合(他にもあります)
  • プロジェクト名/buildとかで、指定しているビルドスクリプトを実行できる

特にwarなのに-jar指定で動かそうっていう発想は僕にはなかったです。良く考えてみたらJava Web StartはEclipseもいけるんじゃないかと思ったけれども、100MB単位のサイズのアプリケーションだとダウンロードがつらそうです。