ローカルのWindows上でもJenkinsが動かせたら、いろいろと実験しやすいなと思ってgithubからリポジトリをcloneしてPythonのユニットテストが通るまでやってみる。
0. JDKのインストール
OracleからJDK1.7系をダウンロードしてインストール。
インストールするディレクトリはスペースを含まないディレクトリにしておいたほうが無難 (例:C:\Java\jdk1.7.0)。
1. Jenkinsのインストール
http://jenkins-ci.org/からWindows版をダウンロードして解凍。
中のmsiファイルを実行してインストール。 JDKと同じくスペースが入らないディレクトリにしておいたほうが無難そう(例:C:\Jenkins)。
デフォルトでは http://localhost:8080/
にアクセスするとJenkinsのダッシュボードにアクセスできる。
2. Pythonのユニットテスト環境を作る
以下の記事を参照してpipのインストールまで行う。
ソースコードは以下の記事のものを使うのでmockをインストールしておく。
> pip install mock
以下のパッケージのインストールを行う。
> pip install nose > pip install unittest-xml-reporting > pip install coverage
3. Jenkinsの設定
3.1. gitとCoberturaプラグインの導入
- 「Jenkinsの管理」
- 「プラグインの管理」
- Git Plugin, Cobertura Pluginを選択してインストール
3.2. Jenkins用のSSH公開鍵を作成
JenkinsはデフォルトではLocal Systemユーザーで実行されるようなので、そのユーザー用に鍵を作る。
> cd C:/Windows/SysWOW64/config/systemprofile/.ssh > ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/【ユーザー名】/.ssh/id_rsa): ./【秘密鍵ファイル名】
できた【秘密鍵ファイル名】.pubの中身をgithubのSSH Keysに登録しておく。
3.3. ジョブの作成
3.3.1. githubからソースコードを落とすところまで
- 「新しいジョブの作成」
- プロジェクト名を入力して、フリースタイル・プロジェクトのビルドを選択
ソースコード管理 → Git → Repositories → Repository URLに自分のGithubのリポジトリを入力。
git@github.com:mia-0032/python-test.git
Credentialsの横のAddからKind「SSHユーザー名と秘密鍵」秘密鍵「Jenkinsマスター上の~/.sshから」を選択。
ここまでで「ビルドを実行」するとワークスペース以下にファイルが落ちてきているはず。
3.3.2. テストの実行結果とカバレッジの出力まで
ビルド → ビルド手順の追加 → Windowsバッチコマンドの実行に以下の記述を追加。
(Jenkinsの実行ユーザーで【Pythonのインストールディレクトリ】\Scripts
にPathを通してあること。)
nosetests test/ -v --with-coverage --with-xunit coverage xml
ビルド後の処理 → ビルド後の処理の追加 → JUnitテスト結果の集計 → テスト結果XML → nosetests.xml
と入力。
同じく ビルド後の処理の追加 → Cobertura カバレッジ・レポートの集計 → Cobertura XMLレポート パターン → coverage.xml
と入力。
ビルドの実行
上記の手順で「ビルドを実行」すれば、テストが成功して以下の用にグラフが表示されます。
という感じで完了。 いろいろと試行錯誤していたら時間かかった・・・。