これは何?
- 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>
(略)