新人SEの学習記録

14年度入社SEの学習記録用に始めたブログです。もう新人じゃないかも…

学習記録:Jenkins

[学習記録] Jenkins

参考書籍

Jenkins実践入門 ?ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)

Jenkins実践入門 ?ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)

9章:設定のポイント

ビルドの実行数を制御する
  • Jenkinsの管理>システムの設定>同時ビルド数
    • サーバで同時実行できるビルドの数をCPUコア数と同じ値にする
    • ビルドキューがたまってきた場合ビルドを分散させる必要(10章)
ジョブの構成管理
  • Jenkins Job Configuration History Plugin
    • ジョブの変更履歴を自動で保存してくれる
    • システム設定>システム設定/ジョブ設定の変更履歴から履歴の最大保存数などを設定可能
    • ジョブのサイドメニューから設定の変更履歴やDiffが見られる
上流/下流プロジェクトの設定
  • 下流プロジェクト:ジョブのビルドが実行された後に実行させる別のジョブ
    • ビルド後の処理で「他のプロジェクトのビルド」にチェックを入れると下流プロジェクトを実行させられる
    • 「下流プロジェクトのテスト結果を集約」にチェックをすれば上流の画面にテスト結果を集約できる
    • 成果物のファイル指紋を取得:テスト結果の集約、成果物が利用されたジョブの追跡、成果物がいつどのビルドで生成されたか確認可能
    • 逆に上流プロジェクトを指定することも:ビルド・トリガで「他プロジェクトのビルド後にビルド」にチェック
    • 上流か下流どちらかの設定を行うと、自動的に相互のジョブに上流/下流のジョブ設定が行われる
    • 他のジョブから成果物を利用したい:Copy Artifact Plugin

10章:一歩進んだ活用法

分散ビルドを実行する
  • マスターとスレーブ
    • マスター:Jenkinsが稼働しているサーバ
    • スレーブ:マスターから割り当てられたジョブをビルドするよう設定されたサーバ
    • Jenkinsの管理>ノードの管理からノードとしてスレーブサーバを設定
    • ジョブの作成時に「実行するノードを制限」にチェックしてノード名を入力
結合テストを自動化する
  • Seleniumで画面操作系のテストを自動化
    • Selenium ServerのバイナリをDLしてJenkinsサーバの任意の場所に配置
    • テストコードはHTML, Java, Pythonなどで記述可能
    • Selenium IDEによりテストコードを効率的に生成:ブラウザ上での操作をキャプチャしてくれる)
    • Seleniumhq Pluginをインストール
    • システムの設定>Selenium Remote Control>htmlSuite RunnerにSelenium Serverのバイナリのパスを入力
    • ジョブの設定>ビルド手順の追加>SeleniumHQ htmlsuite Run
    • browser(テスト実行するブラウザ), startURL(実行時にアクセスするURL), suiteFile(テストファイルのパス), resultFile(結果の出力先)
    • ジョブの設定>ビルド後の処理>Publish Selenium Report
    • Test report HTMLsにresultFileのパスを、Use test comandsにチェックを入れるとテスト実行結果がジョブ結果に反映
バグトラッカーと連携させる
  • Redmineと連携させる
    • Redmine Pluginをインストール
    • ジョブの設定>Redmine website, Redmine project name, Redmine versionを設定
    • ソースコード管理システムの閲覧ブラウザをRedmineにする場合、リポジトリ・ブラウザの欄にRedmineと入力
    • >変更点の一覧にRedmineのリンクが表示され、変更箇所をRedmine上で確認できる
    • 実行したビルド結果画面からチケット番号をクリックするとRedmineの画面に遷移
    • チケット番号はJenkinsと連携しているソースコード管理システムにコミットする際のコミットコメントに記載する