Jenkins

[cover photo]
TOPICS
Programming , Java
発行年月日
PRINT LENGTH
412
ISBN
978-4-87311-534-4
原書
Jenkins: The Definitive Guide
FORMAT
PDF
Ebook
3,960円
Ebookを購入する

CI(継続的インテグレーション)ツールの決定版、Jenkinsのすべてを解説する書籍です。インストール、サーバーの設定、ビルドジョブなどの基礎から、セキュリティ、コード品質、分散ビルドや自動化デプロイと継続的デリバリといった高度なトピックまで、Jenkinsを使いこなすのに必要な情報を網羅しています。さらに日本語版ではPlay! Frameworkを例としてJenkinsのプラグイン開発の手法を付録として収録。品質の高いソフトウェアを開発したいすべての開発者必携の一冊です。

目次

目次
日本語版に寄せて
訳者まえがき
はじめに

1章 Jenkinsの紹介
    1.1 はじめに
    1.2 継続的インテグレーションの基礎
    1.3 Jenkinsの紹介(旧名Hudson)
    1.4 HudsonからJenkinsへ――その略史
    1.5 JenkinsとHudsonのどちらを使うべきか?
    1.6 自分の組織への継続的インテグレーションの導入
        1.6.1 第1段階――ビルドサーバーがない
        1.6.2 第2段階――ナイトリービルド
        1.6.3 第3段階――ナイトリービルドと基本的な自動化テスト
        1.6.4 第4段階――メトリクスの導入
        1.6.5 第5段階――テストへのさらなる真剣な取り組み
        1.6.6 第6段階――自動受け入れテストと、さらなる自動化デプロイメント
        1.6.7 第7段階――継続的デプロイメント
    1.7 この後の行き先は?

2章 Jenkins、はじめの一歩
    2.1 はじめに
    2.2 環境の準備
        2.2.1 Javaのインストール
        2.2.2 Gitのインストール
        2.2.3 GitHubアカウントのセットアップ
        2.2.4 SSH鍵の設定
        2.2.5 サンプルリポジトリのフォーク
    2.3 Jenkinsの起動
    2.4 ツール群の設定
        2.4.1 Mavenのセットアップ内容の設定
        2.4.2 JDKの設定
        2.4.3 通知
        2.4.4 Gitの設定
    2.5 初めてのJenkinsビルドジョブ
    2.6 初めてのビルドの実行
    2.7 さらなるレポート――Javadocの表示
    2.8 コードカバレッジやその他のメトリクスの追加
    2.9 まとめ

3章 Jenkinsのインストール
    3.1 はじめに
    3.2 Jenkinsのダウンロードとインストール
    3.3 Jenkins用のビルドサーバーの準備
    3.4 Jenkinsのホームディレクトリ
    3.5 DebianあるいはUbuntuへのJenkinsのインストール
    3.6 Redhat、Fedora、CentOSへのJenkinsのインストール
    3.7 SUSEあるいはOpenSUSEへのJenkinsのインストール
    3.8 Jenkinsをスタンドアローンアプリケーションとして実行する
    3.9 Apacheサーバーの背後でJenkinsを実行する
    3.10 Jenkinsをアプリケーションサーバー上で動作させる
    3.11 メモリに関する考慮
    3.12 JenkinsをWindowsサービスとしてインストールする
    3.13 Jenkinsのホームディレクトリの内容
    3.14 Jenkinsのデータのバックアップ
    3.15 インストールされているJenkinsのアップグレード
    3.16 まとめ

4章 Jenkinsサーバーの設定
    4.1 はじめに
    4.2 設定ダッシュボード――Jenkinsの管理画面
    4.3 システム環境の設定
    4.4 グローバルプロパティの設定
    4.5 JDK群の設定
    4.6 ビルドツールの設定
        4.6.1 Maven
        4.6.2 Ant
        4.6.3 シェルスクリプト言語
    4.7 バージョン管理ツールの設定
        4.7.1 Subversionの設定
        4.7.2 CVSの設定
    4.8 メールサーバーの設定
    4.9 プロキシの設定
    4.10 まとめ

5章 ビルドジョブのセットアップ
    5.1 はじめに
    5.2 Jenkinsのビルドジョブ
    5.3 フリースタイルビルドジョブの作成
        5.3.1 一般的なオプション
        5.3.2 プロジェクトの高度なオプション
    5.4 ソースコード管理の設定
        5.4.1 Subversionの利用
        5.4.2 Gitの利用
    5.5 ビルドトリガ
        5.5.1 他のビルドジョブが完了したらビルドジョブを開始する
        5.5.2 スケジューリングされたビルドジョブ
        5.5.3 SCMのポーリング
        5.5.4 リモートからのビルドの開始
        5.5.5 手動のビルドジョブ
    5.6 ビルド手順
        5.6.1 Mavenのビルド手順
        5.6.2 Antのビルド手順
        5.6.3 シェルあるいはWindowsバッチコマンドの実行
        5.6.4 ビルド中でのJenkinsの環境変数の利用
        5.6.5 Groovyスクリプトの実行
        5.6.6 他の言語でのプロジェクトのビルド
    5.7 ビルド後の処理
        5.7.1 テスト結果のレポート
        5.7.2 ビルド結果のアーカイブ
        5.7.3 通知
        5.7.4 他のプロジェクトのビルド
    5.8 新しいビルドジョブの実行
    5.9 Mavenビルドジョブの利用
        5.9.1 依存するスナップショットがビルドされたときにビルド
        5.9.2 Mavenビルドの設定
        5.9.3 ビルド後の処理
        5.9.4 エンタープライズリポジトリ管理システムへのデプロイ
        5.9.5 商用エンタープライズリポジトリ管理システムへのデプロイ
        5.9.6 モジュールの管理
        5.9.7 Mavenビルドジョブでの追加のビルド手順
    5.10 他の言語でのJenkinsの利用
    5.10.1 Grailsを利用するプロジェクトのビルド
    5.10.2 Gradleを使ったプロジェクトのビルド
    5.10.3 Visual Studio MSBuildを使ったプロジェクトのビルド
    5.10.4 NAntを使ったプロジェクトのビルド
    5.10.5 Ruby及びRuby on Railsを使うプロジェクトのビルド
    5.11 まとめ

6章 自動テスト
    6.1 はじめに
    6.2 ユニットテストと結合テストの自動化
    6.3 Jenkinsでのテストレポートの設定
    6.4 テスト結果の表示
    6.5 テストを無視する
    6.6 コードカバレッジ
        6.6.1 Coberturaでのコードカバレッジの測定
        6.6.2 Cloverによるコードカバレッジの計測
    6.7 自動化された受け入れテスト
    6.8 JMeterを使った自動パフォーマンステスト
    6.9 助けて! テストが遅すぎる!
        6.9.1 ハードウェアの追加
        6.9.2 実行する結合/機能テストを減らす
        6.9.3 テストの並列実行
    6.10 まとめ

7章 Jenkinsのセキュリティ
    7.1 はじめに
    7.2 Jenkinsのセキュリティの有効化
    7.3 Jenkinsでの単純なセキュリティ
    7.4 ユーザー情報――Jenkinsのユーザーの識別
        7.4.1 Jenkinsの組み込みユーザーデータベースの利用
        7.4.2 LDAPリポジトリの利用
        7.4.3 Microsoft Active Directoryの使用
        7.4.4 Unixのユーザー及びグループの利用
        7.4.5 サーブレットコンテナの認証
        7.4.6 Atlassian Crowdの利用
        7.4.7 他のシステムとの統合
    7.5 権限管理――誰に何ができるのか
        7.5.1 行列ベースのセキュリティ
        7.5.2 プロジェクト単位の権限設定
        7.5.3 ロールベースの権限設定
    7.6 監査――ユーザーの動きの追跡
    7.7 まとめ

8章 通知
    8.1 はじめに
    8.2 メールによる通知
    8.3 高度なメール通知
    8.4 ビルドへの対応の宣言
    8.5 RSSフィード
    8.6 ビルドラジエータ
    8.7 インスタントメッセージング
        8.7.1 JabberによるIM通知
        8.7.2 IRCによるIM通知
    8.8 IRCによる通知
    8.9 デスクトップ通知ツール
    8.10 Notifoからの通知
    8.11 モバイルの通知
    8.12 SMSによる通知
    8.13 音を鳴らす
    8.14 究極のフィードバックデバイス
    8.15 まとめ

9章 コード品質
    9.1 はじめに
    9.2 ビルドプロセス中のコード品質
    9.3 Java及びGroovy用の一般的なコード品質解析ツール
        9.3.1 Checkstyle
        9.3.2 PMD/CPD
        9.3.3 FindBugs
        9.3.4 CodeNarc
    9.4 Violationsプラグインを使ったコード品質の問題のレポート
        9.4.1 フリースタイルビルドジョブの場合
        9.4.2 Mavenビルドジョブの場合
    9.5 Checkstyle、PMD、FindBugsレポートの利用
    9.6 コードの複雑度に関するレポート
    9.7 未解決タスクに関するレポート
    9.8 Sonarとの統合
    9.9 まとめ

10章 高度なビルド
    10.1 はじめに
    10.2 パラメータ化ビルドジョブ
        10.2.1 パラメータ化ビルドジョブの作成
        10.2.2 パラメータ化されたビルドスクリプトを扱えるよう、
 ビルドを適応させる
        10.2.3 高度なパラメータ型
        10.2.4 Subversionのタグからのビルド
        10.2.5 Gitタグからのビルド
        10.2.6 リモートからのパラメータ化ビルドジョブの開始
        10.2.7 パラメータ化されたビルドジョブの履歴
    10.3 パラメータ化されたトリガ
    10.4 マルチ構成ビルドジョブ
        10.4.1 マルチ構成ビルドジョブのセットアップ
        10.4.2 スレーブの軸の設定
        10.4.3 JDKの軸の設定
        10.4.4 ユーザー定義の軸
        10.4.5 マルチ構成ビルドの実行
    10.5 Mavenビルドジョブの自動生成
        10.5.1 ジョブの設定
        10.5.2 継承によるジョブ設定の再利用
        10.5.3 プラグインのサポート
        10.5.4 フリースタイルジョブ
    10.6 ビルドの協調
        10.6.1 Jenkinsにおける並列ビルド
        10.6.2 依存グラフ
        10.6.3 合流
        10.6.4 ロックとラッチ
    10.7 ビルドパイプラインとプロモーション
        10.7.1 M2ReleaseプラグインでのMavenリリースの管理
        10.7.2 成果物のコピー
        10.7.3 ビルドのプロモーション
        10.7.4 テスト結果の集約
        10.7.5 ビルドパイプライン
    10.8 まとめ

11章 分散ビルド
    11.1 はじめに
    11.2 Jenkinsの分散ビルドアーキテクチャ
    11.3 Jenkinsにおけるマスター/スレーブの方針
        11.3.1 マスターによるSSHを使ったスレーブの起動
        11.3.2 Java Web Startを利用した、手動によるスレーブの起動
        11.3.3 JenkinsスレーブのWindowsサービスとしてのインストール
        11.3.4 ヘッドレスモードでのスレーブノードの起動
        11.3.5 リモートサービスとしてのWindowsスレーブの起動
    11.4 スレーブあるいはスレーブのグループへのビルドジョブの関連づけ
    11.5 ノードのモニタリング
    11.6 クラウドコンピューティング
        11.6.1 Amazon EC2の利用
    11.7 CloudBeesのDEV@cloudサービスの利用
    11.8 まとめ

12章 自動化デプロイメントと継続的デリバリ
    12.1 はじめに
    12.2 自動化された継続的デプロイメントの実装
        12.2.1 デプロイメントスクリプト
        12.2.2 データベースの更新
        12.2.3 スモークテスト
        12.2.4 変更のロールバック
    12.3 アプリケーションサーバーへのデプロイメント
        12.3.1 Javaアプリケーションのデプロイ
        12.3.2 RubyやPHPといったスクリプトベースのアプリケーションのデプロイ
 
    12.4 まとめ

13章 Jenkinsのメンテナンス
    13.1 はじめに
    13.2 ディスク領域のモニタリング
        13.2.1 Disk Usageプラグインの使用
        13.2.2 ディスク使用量とJenkinsのMaven用プロジェクト
    13.3 サーバーの負荷のモニタリング
    13.4 設定のバックアップ
        13.4.1 Jenkinsのバックアップの基礎
        13.4.2 Backupプラグインの利用
        13.4.3 より軽量な自動化バックアップ
    13.5 ビルドジョブのアーカイブ処理
    13.6 ビルドジョブの移行
    13.7 まとめ

付録A ユニットテストと結合テストの自動化
    A.1 Mavenによるテストの自動化
    A.2 Antによるテストの自動化

付録B プラグインの開発
    B.1 プラグインの開発
        B.1.1 作成するプラグイン
        B.1.2 プラグイン開発環境のセットアップ
        B.1.3 Play! Frameworkプラグインのコードを取得する
    B.2 プラグインの構成
        B.2.1 拡張ポイント
    B.3 Builderを開発する
    B.4 Recorderを開発する
    B.5 テスト結果ページを追加する
    B.6 プラグインをリリースしよう
    B.7 ローカルのJenkinsにリリースする
    B.8 Jenkins Plugin Managerにリリースする
        B.8.1 Jenkinsメーリングリストに投稿する
        B.8.2 リリースの準備をする
        B.8.3 全世界にリリースする
    B.9 プラグインのWikiを作成する
    B.10 詳しい情報

索引