これは何?
- Windows Server 2012 R2にJenkinsの環境を構築した際のメモ
- ビルド/テストしたい環境は、Java(JRE1.8.0u20), Apache Ant(1.9.4), Git(1.9.4.mysgit.1)
作業時間メモ
今までJenkinsを構築したことはないレベルの人間で…
- windows serverのインストールからJenkinsのインストールなどなど含めて3~4時間?
- Jenkinsのビルドを複数つなげてごにょごにょしたりしたり遊んだのが8時間
- 自作Pluginを入れて遊んでみたのが8時間?
合計2日半くらい?
installer と warをダウンロードする際の違いは?
- installer はサービスとして登録までをしてくれる。デフォルトのファイルパスは、
c:\\Program Files(x86)\Jenkins
だった。 - war の場合は、起動は簡単?サービスの登録とかは自分でやらないといけない。同一サーバに複数のJenkinsサーバをお手軽に建てたいときとかは便利かもしれない。
git環境は?
- git for windowsをinstallerを使ってインストール。
- インストール途中で、
Adjusting your PATH enviroment
でUse git for the windows console.
を選んでおくと、Jenkinsと連携する際にShellにそのままコマンドを打てるので便利。 - gitのベア環境を作る際には、
git init --bare --share=true
で作ることができる。
Jenkinsの設定は?
Jenkinsの管理
-> システムの管理
から
- JDKのパスの設定(JAVA_HOME) ex)
C:\Program Files\Java\jdk1.8.0_20
- Antのパスの設定(ANT_HOME) ex)
C:\apache-ant-1.9.4
だけやっておいた。Ant自体のPATH設定は、ANT_HOME及びPATHの設定 を参照した。
JenkinsのPluginは?
-
Git plugin : gitとの連携のため。git.exeのPathを登録する必要があるっぽい?環境変数Pathに
git.exe
の場所を教えているけどダメみたい。Jenkinsの管理
->システムの管理
->Gitの項目
->Path to Git executable
にC:\Program Files (x86)\Git\cmd\git.exe
を追加でOK - Build Pipeline plugin : ビルドの前後関係を可視化してくれるプラグイン。複雑になってきたときに便利かな?
- Copy Artifact Plugin : ビルド結果の成果物を他のJobに転送できるプラグイン。ビルド(Job:A) -> ビルド成果物を他のリポジトリへpush(Job:B)みたいなことをするときに便利。
- Power Shell plugin : せっかくWindows Serverなのでcmd.exeじゃなくて、Power Shellを使おう。ちなみに、環境によって環境変数の呼び出し方が違うので注意。
PowerShell : $env:paramName
Windowsバッチ : %paramName%
シェル : $paramName
(参考):http://hookturn.tumblr.com/post/75901385482
- Parameterized Trigger Plugin : ビルド間のパラメータを引き継ぐというプラグイン。有名らしいのでggrks状態。参考にしたページを張っておく。
Jobの設定関連
- ビルドの設定時に ビルド手順の追加 で、windows環境では、
windowsバッチコマンドの実行
を選ぶ。シェルの実行
はUNIXのシェルコマンドを叩きに行くのでエラーになる。 - Gitの設定時、リポジトリのパスをファイルパスを指定する時は、
file:///
で始める。 - (上の続き)ネットワークドライブを割り当てるパターン
file:///Z:\hogehoge
は読み込んでくれないが、サーバを直接指定するパターンfile:///\\HOGER-Server\\hoge\\hoge.git
はいける。 - 日本語のJob名を入力しようとすると、Jenkinsが固まる。IEの問題の気もする。一旦置き。
Plugin を自作する場合
- pluginの開発環境構築は、公式ドキュメント 通りで特にハマりポイントは無い(2014/09/01現在)
- Jenkinsのバージョンが1.577の場合にテストが
java.io.IOException: Failed to clean up temp dirs
で落ちるよう。Windowsの環境依存な気もするけども、いったん見なかったことにしたい。ほんとによくないけどテストなしで実行できるようにする。参考:Jenkins Plugin Build Error
pom.xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
<exclude>InjectedTest.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
- pom.xmlでpluginで対象とするJenkinsのバージョンを指定する。本番環境と合わせるのが吉と思われる。
pom.xml
(略)
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>1.577</version> <!--!!!ココ!!! -->
</parent>
(略)