Code Stream には、Jenkins プラグインが搭載されています。Jenkins ジョブをトリガしてソース コードをビルドおよびテストするというものです。この Jenkins プラグインは、テスト ケースを実行し、カスタム スクリプトを使用できます。

パイプラインで Jenkins ジョブを実行するには、Jenkins サーバを使用し、 Code Stream で Jenkins エンドポイントを追加します。次に、パイプラインを作成し、Jenkins タスクを追加します。

Code Stream で Jenkins タスクと Jenkins エンドポイントを使用すると、Jenkins でマルチブランチ ジョブをサポートするパイプラインを作成できます。マルチブランチ ジョブには、Git リポジトリの各ブランチに独立したジョブが含まれます。マルチブランチ ジョブをサポートするパイプラインを Code Stream 内に作成するには、次の処理を行います。

  • Jenkins タスクは、Jenkins サーバ上の複数のフォルダにある Jenkins ジョブを実行できます。
  • Jenkins タスク設定のフォルダ パスをオーバーライドして、別のフォルダ パスを使用できます。このパスは、 Code Stream の Jenkins エンドポイントで定義されているデフォルトのパスをオーバーライドします。
  • Code Stream のマルチブランチ パイプラインは、Git リポジトリまたは GitHub リポジトリに含まれる .groovy タイプの Jenkins ジョブ ファイルを検出し、リポジトリ内でスキャンした各ブランチでジョブの作成を開始します。
  • Jenkins エンドポイントで定義されているデフォルトのパスを、Jenkins タスク設定で指定したパスでオーバーライドして、メインの Jenkins ジョブ内の任意のブランチに関連付けられたジョブとパイプラインを実行できます。

前提条件

  • バージョン 1.561 以降を実行している Jenkins サーバをセットアップします。
  • Code Stream で、プロジェクトのメンバーであることを確認します。メンバーでない場合は、プロジェクトにメンバーとして追加するように Code Stream 管理者に依頼します。Code Streamでプロジェクトを追加する方法を参照してください。
  • Jenkins サーバにジョブがあり、パイプライン タスクがそのジョブを実行できるようになっていることを確認します。

手順

  1. Jenkins エンドポイントを追加し、検証します。
    1. [エンドポイント] > [新規エンドポイント] の順にクリックします。
    2. プロジェクトを選択し、エンドポイントのタイプとして [Jenkins] を選択します。次に、名前と説明を入力します。
    3. このエンドポイントがインフラストラクチャのビジネス クリティカルなコンポーネントである場合は、[制限付きとしてマーク] を有効にします。
    4. Jenkins サーバの URL を入力します。
    5. Jenkins サーバにログインするためのユーザー名とパスワードを入力します。次に、その他の情報を入力します。
      表 1. Jenkins エンドポイントのその他の情報
      エンドポイントの入力情報 説明
      フォルダ パス ジョブをグループ化するフォルダのパス。Jenkins は、フォルダ内のすべてのジョブを実行できます。サブフォルダを作成できます。例:
      • folder_1job_1 を含めることができます
      • folder_1folder_2 を含め、そこに job_2 を含めることができます

      folder_1 のエンドポイントを作成するとフォルダ パスは job/folder_1 となり、エンドポイントには job_1 のみが表示されます。

      folder_2 という名前の子フォルダにあるジョブのリストを取得するには、そのフォルダ パスを /job/folder_1/job/folder_2/ として使用するエンドポイントを別途作成する必要があります。

      マルチブランチ Jenkins ジョブのフォルダ パス マルチブランチ Jenkins ジョブをサポートするには、Jenkins タスクで、Jenkins サーバの URL とジョブの完全なパスを含むフル パスを入力します。Jenkins タスクにフォルダ パスを含めると、そのパスは Jenkins エンドポイントに表示されるパスをオーバーライドします。Jenkins タスクでカスタム フォルダ パスを使用した場合、 Code Stream はそのフォルダ内のジョブだけを表示します。
      • 例:https://server.yourcompany.com/job/project
      • パイプラインでメインの Jenkins ジョブもトリガする必要がある場合は、次のパスを使用します。https://server.yourcompany.com/job/project/job/main
      URL Jenkins サーバのホスト URL。URL を protocol://host:port の形式で入力します。例:http://192.10.121.13:8080
      ポーリング間隔 Code Stream が Jenkins サーバをポーリングして更新を確認する間隔。
      申請の再試行回数 Jenkins サーバのスケジュール設定されたビルド申請を再試行する回数。
      再試行の待機時間 Jenkins サーバのビルド申請を再試行するまでの待機時間(秒単位)。
    6. [検証] をクリックし、エンドポイントが Code Stream に接続されていることを確認します。接続されていない場合は、エラーを修正し、[保存] をクリックします。
      コードをビルドおよびテストする Jenkins エンドポイントには URL が必要です。このエンドポイントでは、ユーザー パスワードを保存する変数を作成できます。
  2. コードをビルドするには、パイプラインを作成し、Jenkins エンドポイントを使用するタスクを追加します。
    1. [パイプライン] > [新しいパイプライン] > [空白のキャンバス] の順にクリックします。
    2. デフォルトのステージをクリックします。
    3. [タスク] 領域で、タスクの名前を入力します。
    4. タスク タイプに [Jenkins] を選択します。
    5. 作成した Jenkins エンドポイントを選択します。
    6. ドロップダウン メニューから、パイプラインが実行する Jenkins サーバ上のジョブを選択します。
    7. ジョブのパラメータを入力します。
    8. Jenkins ジョブの認証トークンを入力します。
    Jenkins エンドポイントを使用する Jenkins タスクを設定する場合は、Jenkins ジョブを選択し、値を追加します。トークンを入力することもできます。
  3. パイプラインを有効にして実行し、パイプラインの実行状況を表示します。
    Jenkins タスクのパイプライン実行では、ジョブ ID、ジョブ URL、キーと値のペアを含む Jenkins ジョブの詳細がジョブ結果に表示されます。
  4. パイプライン ダッシュボードで実行の詳細とステータスを確認します。
    障害があれば特定し、その理由を突き止めます。また、パイプラインの実行期間、完了、および障害に関するトレンドも表示できます。
    パイプライン ダッシュボードには、パイプラインの実行数と実行にかかった時間、各実行のステータスなど、パイプラインの実行に関する詳細が表示されます。

結果

完了です。エンドポイントを追加し、パイプラインを作成し、コードをビルドする Jenkins タスクを設定して、 Code Stream を Jenkins と統合しました。

例: Jenkins ビルド タスクの YAML の例

この例で使用したタイプの Jenkins ビルド タスクの場合、YAML は次のコードに似ています。通知が有効になっています。

test:
  type: Jenkins
  endpoints:
    jenkinsServer: jenkins
  input:
    job: Add two numbers
    parameters:
      Num1: '23'
      Num2: '23'

次のタスク

詳細については、他のセクションを参照してください。エンドポイントへの Code Stream の接続を参照してください。