miyabihitoの日記

個人的な技術メモ

Jenkins

概要

CIツール
旧名Hudson

ジョブ分割

ビルドの並列度を高めるためには、大きなジョブを連続的に行うのではなく、
小さなジョブに依存関係を作り、ジョブを平行して実施できるように設計する。

  • ジョブの依存関係

    下記の2通り。

    • 上流プロジェクトの「ビルド後の処理」に「他のプロジェクトのビルド」を設定する。
    • 下流プロジェクトの「ビルドトリガー」に「他のプロジェクトのビルド」を設定する。
  • ビルド間での成果物の受け渡し

    上流プロジェクトの「ビルド後の処理」で「成果物を保存」を設定する。
    下流プロジェクトで、上流プロジェクトの「最新成功ビルドの成果物」リンクから上流プロジェクトの成果物を取得する。

  • ファイル指紋

    ビルド間で受け渡される成果物をトレースするための仕組み。
    失敗したテストと、そのテストで使用したバイナリの生成元ビルドを紐づける事が出来る。
    「ビルド後の処理」で、「ファイル指紋を記録してファイルの使用状況を追跡」で設定。
    上流プロジェクトは、「保存された成果物の指紋を記録」にチェック
    下流プロジェクトは、取得した上流プロジェクトの成果物をテキストフィールドに指定。

プラグイン

Jenkinsは、プラグインをインストールすることで、各種機能を拡張する事が出来る。
もちろん、自作も可能。

  • Git Plugin

    プロジェクトのソースコード管理に「git」を追加するために必要。
    ソースコード管理」「高度な設定」の「Config user.name Value」と「Config user.email Value」を設定しておかないと、タグ作成に失敗し、ビルドが失敗するので注意。

  • GitHub Plugin

    GitHubとの連携用プラグイン。

  • Build Pipeline Plugin

    ビルドの連続する上流・下流の関係を視覚的に確認できる。

  • URLTrigger Plugin

    ビルドトリガーにHTTPポーリングを追加するプラグイン。
    ビルド実施条件に、ステータスコードやボディの変化を指定できる。

  • Promoted Builds Plugin

    上流プロジェクトでビルドを行い、下流でテストを実施すると、
    テストに失敗しても、ビルドが完了すると上流は成功となる。
    このような場合に、テストに成功したビルドを判別出来るようにするプラグイン。

  • Batch Task Plugin

    プロジェクトにバッチ処理を登録することができるプラグイン。
    プロジェクトのページにリンクが表示されるので、そこへのリクエストで対象のバッチ処理を起動する事も可能。

  • Build Trigger Badge Plugin

    ビルド履歴にビルドのトリガーを表すアイコンを表示するプラグイン。

  • Categorized Jobs View

    ビューをプロジェクト名の正規表現でグループ化出来るプラグイン。

  • Shelve Project

    ジョブを一覧からしまっておく事ができる。完全に削除したくない時に使える。

資料