Jenkins パイプラインチュートリアル:作成方法 Jenkinsファイル(例)

⚡ スマートサマリー

Jenkins パイプラインは、ビルド、テスト、デプロイの各ジョブを、コードとして実行される順序付けられたシーケンスにリンクします。 Jenkinsプロジェクトと並行してコミットされたファイルは、その一連の流れを、レビュー可能でバージョン管理された納品物の定義へと変換します。

  • 🔘 パイプライン: 相互に関連し合う一連の出来事であり、それぞれの作業は前の作業に依存している。
  • ☑️ Jenkinsファイル: パイプラインの各ステップを記述した、ドメイン固有言語で書かれたテキストファイル。
  • 2つの構文: 宣言型は固定階層を提供し、スクリプト型は構造を Groovy コントロール。
  • 🧪 4つの用語: パイプライン、ノード、ステージ、ステップは、それぞれフロー、マシン、フェーズ、タスクを表します。
  • 🛠️ セットアップパス: ビルドパイプラインプラグインをインストールし、パイプラインビューを追加し、ジョブを連結して実行します。
  • 📌 実践: マテリアル関連の作業はノードブロックに、セットアップ以外の作業はステージにまとめ、入力はタイムアウトで囲むようにしてください。

Jenkins パイプラインはコードとして定義される JenkinsFile

何ですか Jenkins パイプライン?

Jenkins Pipeline は、統合と実装をサポートするプラグインの組み合わせです。 継続的デリバリーパイプラインこれは、パイプラインDSLを介して、シンプルかつ複雑な配信パイプラインをコードとして作成するための拡張可能な自動化サーバーです。パイプラインとは、一連のイベントが順番にリンクされたものです。

継続的デリバリー パイプラインとは何ですか? 使い方?

で Jenkins パイプラインでは、すべてのジョブまたはイベントは、少なくとも1つ以上のイベントに何らかの形で依存しています。これは以下の図に示されています。

継続的デリバリーパイプラインの状態は、ビルド、デプロイ、テスト、リリースです。 Jenkins
の作業 Jenkins 継続的デリバリーパイプライン

上の図は継続的デリバリーパイプラインを表しています。 Jenkinsこれは、ビルド、デプロイ、テスト、リリースと呼ばれる状態から構成されます。各状態には独自のイベントがあり、それらは順番に実行されます。

継続的デリバリーパイプラインは、そのプロセスを自動的に表現し、ソフトウェアをバージョン管理からリリースまで、繰り返し可能なビルドのシーケンスを通して運びます。 テスト そして展開段階。

何が Jenkinsファイル?

Jenkins パイプラインは、テキストファイルで定義できます。 Jenkinsファイル。これは、パイプラインをドメイン固有言語(DSL)のコードとして表現し、パイプラインを実行するために必要なすべてのステップを保持します。

使用する利点 Jenkinsファイルは以下のとおりです。

  • 1 Jenkinsこのファイルは、各ブランチごとにパイプラインを作成し、プルリクエストを実行できます。
  • 確認することができます Jenkins パイプライン上のコード
  • 監査することができます Jenkins パイプライン
  • これはパイプラインの単一のソースであり、複数のユーザーが変更できます。

パイプラインは以下のように定義できます。 Jenkins ウェブUIまたは Jenkinsソース管理にコミットされたファイル。最小限の宣言型ファイルは、パイプラインブロック、エージェント、およびフェーズごとに1つのステージを含むステージという、固定された構造を持つ。

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Building'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying'
            }
        }
    }
}

リポジトリのルートに保存することで、パイプラインにコードのバージョンが反映されます。

宣言型パイプライン構文とスクリプト型パイプライン構文の比較

2つのタイプがあります Jenkins パイプライン構文は、定義に使用されます。 Jenkinsファイル。

  1. 宣言的
  2. スクリプト化

宣言的

宣言型パイプライン構文の方が簡単な方法です。これは事前に定義された階層構造に従い、パイプライン実行のあらゆる側面を分かりやすく制御します。

スクリプト化

スクリプト化 Jenkins パイプラインは Jenkins コントローラーは軽量エグゼキューターを介して動作し、パイプラインをアトミックコマンドに変換するために使用するリソースはごくわずかです。この2つは記述方法が大きく異なるため、1つずつ選択してください。 Jenkinsファイル。

⚠️ 注意: Jenkins 今は マスター   コントローラ.

なぜ使うの? Jenkins パイプライン?

Jenkins オープンです 継続的統合サーバー 自動化する ソフトウェア開発プロセス複数の 自動化ジョブ ユースケースから抽出したデータを、1つのパイプラインとして実行します。

使用すべき理由は以下のとおりです。 Jenkins パイプライン:

  • パイプラインはコードとして実装されているため、複数のユーザーがプロセスを編集および実行できます。
  • パイプラインは堅牢です。サーバーが予期せず再起動した場合でも、パイプラインは自動的に再開されます。
  • パイプラインを一時停止し、ユーザーが入力を行うまで待機させることができます。
  • パイプラインは大規模プロジェクトをサポートします。複数のジョブを実行したり、パイプラインをループ内で使用したりすることも可能です。

Jenkins パイプライン Concepts

4つの項が毎回繰り返されます Jenkinsファイル:

契約期間 詳細説明
パイプライン継続的デリバリーのためのビルドプロセス全体を網羅する、コードとして記述された一連の手順。パイプラインを使用することで、アプリケーションのビルド、テスト、デリバリーを実行できます。
Node機械上で Jenkins 実行はノードと呼ばれます。ノードブロックは主にスクリプトパイプライン構文で使用されます。
ステージステージブロックには一連のステップが含まれています。ビルド、テスト、デプロイの各プロセスはそれぞれステージにまとめられ、パイプラインビューでもそれが視覚化されます。
手順特定の処理を定められた時間に実行する単一のタスク。パイプラインは一連のステップで構成される。

ビルドパイプラインプラグインをインストールします Jenkins

ビルドパイプラインプラグインは、受信ジョブと送信ジョブのパイプラインビューを作成し、手動介入トリガーを追加します。

インストール方法は以下のとおりです。

ステップ1) プラグインの設定は以下にあります。 管理 Jenkins プラグインの管理、 下に示された。

⚠️ バージョンノート: 現在 Jenkins リリースラベルこの画面 管理 Jenkins → プラグインタブの動作はここに記載されているとおりです。

プラグイン管理ページ Jenkins ビルドパイプラインプラグインの設定がある場所

プラグインがすでにインストールされている場合は、「インストール済み」タブの下に表示されます。

インストール済みタブ Jenkins プラグインマネージャーでビルドパイプラインプラグインを一覧表示する

ステップ2) プラグインがまだインストールされていない場合は、「利用可能」タブに表示されます。

プラグインをインストールした状態で:

作り方 Jenkins パイプライン

ログインしたら Jenkins ダッシュボード:

ステップ1) 左側の「+」ボタンをクリックしてください Jenkins パイプラインを作成するためのダッシュボード。

プラスボタン Jenkins 新しいビューを追加するために使用されるダッシュボード

ステップ2) 新しいビューダイアログに入力してください。

  1. パイプラインビューに名前を付けましょう。それを「Guruこのデモでは「99 Pipeline」を使用します。
  2. オプションの下にある「パイプラインビューの構築」を選択します。
  3. 下図のように「OK」をクリックしてください。

パイプラインビュー名を入力し、「パイプラインビューの構築」を選択した新しいビューダイアログ

ステップ3) 次のページでは、さらに詳細な設定が求められます。デフォルト設定を受け入れ、設定画面で最初のジョブを選択してください。

「適用」をクリックしてから「OK」をクリックしてください。

デフォルト設定で最初のジョブを選択した状態で、ビルドパイプラインビューの設定ページを表示します。

すると、アイテムのサンプルパイプラインビューが表示されます。

サンプル Jenkins ビルドパイプラインビューが作成されました Guru99 パイプラインアイテム

パイプラインビルドの実行

ステップ1) まずジョブを連結します。最初のジョブを開き、「設定」をクリックしてください。

最初のリンクを設定します Jenkins ジョブは、ジョブの連鎖を開始するために使用されます。

ステップ2) 次に、「ビルドトリガー」で、「他のプロジェクトがビルドされた後にビルドする」オプションをオンにします。

「他のプロジェクトがビルドされた後にビルドする」オプションがオンになっている「ビルドトリガー」セクション

あなたのあらゆる仕事に対応できる仕組みが、今や整いました。

ステップ3) ビルドパイプラインビュープラグインがインストールされていない場合は、インストールしてください。

ステップ4) ソフトウェア設定ページで、下図のように Jenkins ダッシュボードで、「+」ボタンを使用してビューを作成し、「ビルドパイプラインビュー」オプションを選択して「OK」をクリックします。

「ビルドパイプラインビュー」オプションが選択された新しいビューダイアログ

ステップ5) パイプラインビューの設定で、「パイプラインフロー」を探します。

パイプラインフローで、最初に実行するジョブ(ステップ1とステップ2で他のジョブに連結されたジョブ)を選択します。

パイプラインフロー設定 Guru99 プロジェクト1が最初の仕事として選ばれました

Guru99 プロジェクト 1 が最初のジョブとして選択されているため、連鎖したジョブは 1 つずつ実行されます。

パイプラインの実行中は、赤と緑のシンボルでその状態が示されます。赤は失敗、緑は成功を表します。

この例ではボタンが緑色なので、パイプラインは成功しました。

緑色のステータスボタンは成功を示しています Jenkins パイプライン実行

Running: Jenkins パイプライン

「実行」をクリックして実行します Jenkins パイプライン。以下のようなものになります。

実行ボタン Jenkins ビルドパイプラインビュー

上記の例では、シンプルな「helloworld.java」プログラムを作成します。実際のプロジェクトでは、以下に示すような、はるかに複雑なパイプラインが連結されます。

完了 Jenkins パイプラインビューでは、連鎖したすべてのジョブが順番に表示されます。

⚠️ バージョンノート: ビルドパイプライン ビュー プラグインは、連鎖したフリースタイル ジョブを視覚化する従来の方法です。現在の慣行では、同じフローを Jenkinsファイル。青 Ocean もはや強化されていません。

ベストプラクティス Jenkins パイプライン

パイプラインを維持管理するための7つの習慣:

  • 純正品を使用する Jenkins パイプライン
  • パイプラインをコードとして開発する
  • パイプライン内のセットアップ以外の作業はすべてステージ ブロック内で発生する必要があります。
  • パイプライン内の重要な作業はすべて、ノード ブロック内で実行する必要があります。
  • ノードブロック内で入力を使用しないでください。
  • env グローバル変数を使用して環境変数を設定しないでください
  • 入力をタイムアウトでラップする

よくあるご質問

リポジトリをスキャンし、 Jenkinsファイルごとにジョブを作成します。ブランチの動作は、そのファイル内の BRANCH_NAME 変数によって決まります。

それらをに保存します Jenkins 認証情報は環境ブロック内でcredentials()ヘルパーを使用して保存および読み取ります。値は実行時に挿入され、ログではマスクされるため、パスワードがファイルに残ることはありません。

ステージ終了後、結果に関わらず実行されます。「常に」「成功」「失敗」「不安定」などの条件により、レポートの公開、成果物のアーカイブ、チームへの通知を重複なく1つのファイルで実行できます。

はい。ステージ内の並列ブロックは、その分岐を同時に実行します。これは、複数のブラウザにまたがるスイートに適しています。各分岐にはエージェントが必要なため、実行時間はエグゼキュータが空いている場合にのみ短縮され​​ます。

宣言型リンターのエンドポイントに投稿するか、以前の実行時のリプレイを開き、スクリプトを編集してリポジトリに手を加えることなく実行します。どちらの方法でも構文エラーを早期に検出できます。

AIアシスタントは長いコンソールログを読み取り、繰り返しスタックをグループ化できます trac障害が発生したステージを特定し、そのステージ名を指定します。また、断続的なテストもフラグ付けします。提案内容はすべて、生のログと照合して確認してください。

Yes. 副操縦士 ステージ名を指定したコメントから宣言的な骨組みを作成し、チェックアウトやシェルコマンドなどの手順を完了します。 Revエージェントのラベル、認証情報、タイムアウトなどを確認します。これらの候補はしばしば誤って推測されます。

同じブロックが3つ以上出現した場合 Jenkinsファイル。共有ライブラリは、そのロジックをバージョン管理された単一のリポジトリに保持するため、修正はすべてのプロジェクトに反映され、各ファイルは自身のステージのみを保持します。