Monday, 17 October 2016

Jenkins

OSの授業の採点に使おうかと。

既に学科のサーバ上に設置されたのがあって、それが使えるかどうかチェックするわけですが...

* 自分はloginできるが、学生はできない

あれ? 正確にはloginできるが「権限がない」とか言ってる。ふーん。で、attonとimpaでうだうだしたところ、

* 学生のldap groupをJenkinsに登録する必要がある

なんだけど、状況は変わらない。ユーザはJenkins上にできるが、student groupが表示されない。で、判明したのが、

* ldap groupと POSIX group は違う

Jennkins側をPOSIX groupに対応させるよりも、ldap 側にstudent groupを追加する方が良いということで、ldapにgroupを追加。

で、login できた〜

次は、

* mercurial

これは yum で。Jenkinsの方には、Mercurial plugin を入れる。

ここで、Jenkins上に item を作って、mercurial repository を接続する。これで、Jenkins 側から build now。お、動いた。

が、gradle build してないな。gradle plugin を入れただけじゃだめか。というか、

* java8 と gradle

どっちも入ってない。まあ、そうだよな。java8 は openjdk8をyumで。gradle は zip で。ところが、

* command not found

あれ〜 どこに入れた? /usr/local/gradle? う〜、いいや、/usr/bin に symbolic link 。よし、これで build してくれたようだが...

* tools.jar not found

へ? いや、Java8のruntimeだけじゃだめなんだよ。JDKいれないと。で、yum で java-1.8.0-openjdk-devel.x86_64 を入れる。よし解決。

でも、build してくれないんですが。:help とか言ってる。ググると、

* build.gradle で default task を指定しろ

あ、そうですか。Jenkins 側では task を指定するには wrapper を使う必要があるらしい。まぁ、build.gradle に書かせればよいか。

* defaultTasks 'build'

よしよし、これで、gradle build が通って、build が green に。

あ、でも、Warning は許せないんですが。え、それも gradle でやるの?

compileJava {
options.compilerArgs << "-Werror"
}

なるほど。

でも、JenkinsにOS受講者分 item が並ぶんですが、それはいいの? Jekins にitemのfiilterみたいなのがあるのか。それでいいか。

はい、お疲れ様でした。これで、手動で hg clone から抜け出せるかな。

No comments: