Jenkins パイプライン チュートリアル: JenkinsFile の作成方法 (例)
ジェンキンスパイプラインとは?
ジェンキンスパイプライン 継続的デリバリー パイプラインの統合と実装をサポートするプラグインの組み合わせです。パイプライン DSL を介してコードとして単純または複雑なデリバリー パイプラインを作成するための拡張可能な自動化サーバーを備えています。パイプラインは、シーケンスで相互にリンクされたイベントのグループです。
継続的デリバリー パイプラインとは何ですか? 使い方?
Jenkins パイプラインでは、すべてのジョブまたはイベントが少なくとも XNUMX つ以上のイベントに対して何らかの依存関係を持っています。

上の図は、Jenkins の継続的デリバリー パイプラインを表しています。 これには、ビルド、デプロイ、テスト、リリースと呼ばれる状態のグループが含まれています。 これらのイベントは相互に関連しています。 すべての状態にイベントがあり、継続的デリバリー パイプラインと呼ばれるシーケンスで動作します。
継続的デリバリーパイプラインは、ソフトウェアをバージョン管理するためのプロセスを表す自動化された表現です。したがって、ソフトウェアに加えられたすべての変更は、リリースされるまでにいくつかの複雑なプロセスを経ます。また、信頼性が高く繰り返し可能な方法でソフトウェアを開発し、構築されたソフトウェアを複数の段階に進めることも含まれます。 テスト そして展開。
JenkinsFile とは何ですか?
Jenkins パイプラインは、というテキスト ファイルを使用して定義できます。 ジェンキンスファイル。 JenkinsFile を使用してパイプラインをコードとして実装でき、これはドメイン固有言語 (DSL) を使用して定義できます。 JenkinsFile を使用すると、Jenkins パイプラインの実行に必要な手順を作成できます。
使用する利点 Jenkinsファイルは:
- すべてのブランチに対してパイプラインを自動的に作成し、XNUMX つだけでプル リクエストを実行できます。 ジェンキンスファイル。
- パイプラインで Jenkins コードをレビューできます
- Jenkins パイプラインを監査できます
- これはパイプラインの単一のソースであり、複数のユーザーが変更できます。
JenkinsFile は、Web UI または Jenkins ファイルを使用して定義できます。
宣言型パイプライン構文とスクリプト型パイプライン構文:
JenkinsFile の定義に使用される Jenkins パイプライン構文には XNUMX 種類があります。
- 宣言的
- スクリプト化
宣言的:
宣言型パイプライン構文を使用すると、パイプラインを簡単に作成できます。 これには、Jenkins パイプラインを作成するための事前定義された階層が含まれています。 これにより、パイプライン実行のあらゆる側面をシンプルかつ直接的な方法で制御できるようになります。
スクリプト:
スクリプト化された Jenkins パイプラインは、軽量エグゼキュータの助けを借りて Jenkins マスター上で実行されます。パイプラインをアトミック コマンドに変換するために使用するリソースはごくわずかです。宣言型構文とスクリプト化構文は互いに異なり、まったく異なる方法で定義されます。
Jenkin のパイプラインを使用する理由
ジェンキンスはオープンです 継続的統合サーバー ソフトウェア開発プロセスの自動化をサポートする機能があります。 ユースケースを利用して複数の自動化ジョブを作成し、Jenkins パイプラインとして実行できます。
Jenkins パイプラインを使用する必要がある理由は次のとおりです。
- Jenkins パイプラインは、複数のユーザーがパイプライン プロセスを編集および実行できるコードとして実装されます。
- パイプラインは堅牢です。 したがって、サーバーが予期しない再起動を受けた場合、パイプラインは自動的に再開されます。
- パイプライン プロセスを一時停止し、ユーザーからの入力があるまで再開を待つことができます。
- Jenkins Pipelines は大規模なプロジェクトをサポートします。 複数のジョブを実行したり、ループ内でパイプラインを使用したりすることもできます。
ジェンキンスパイプライン Concepts
契約期間 | 詳細説明 |
---|---|
パイプライン | パイプラインは、継続的デリバリーのためにコードの形式で与えられる一連の命令であり、ビルド プロセス全体に必要な命令で構成されます。 パイプラインを使用すると、アプリケーションを構築、テスト、配信できます。 |
Node | Jenkins が実行されるマシンはノードと呼ばれます。 ノード ブロックは主にスクリプト化されたパイプライン構文で使用されます。 |
ステージ | ステージ ブロックには、パイプライン内の一連のステップが含まれます。 つまり、ビルド、テスト、デプロイのプロセスはすべて XNUMX つのステージにまとめられます。 一般に、ステージ ブロックは、Jenkins パイプライン プロセスを視覚化するために使用されます。 |
手順 | ステップは、定義された時間に特定のプロセスを実行する単一のタスクにすぎません。 パイプラインには一連のステップが含まれます。 |
Jenkins にビルド パイプライン プラグインをインストールする
パイプラインを構築する プラグインを使用すると、受信ジョブと送信ジョブのパイプライン ビューを作成し、手動介入が必要なトリガーを作成できます。
インストール方法は次のとおりです パイプラインを構築する Jenkins のプラグイン:
ステップ 1) プラグインの設定は次の場所にあります。
「Jenkins の管理」 > 「プラグインの管理」。
プラグインがすでにインストールされている場合は、「インストール済み」タブの下に表示されます。
ステップ 2) プラグインをまだインストールしていない場合は、
それは下に表示されます 利用できます タブには何も表示されないことに注意してください。
正常にインストールされたら、 パイプラインを構築する Jenkins のプラグインを使用するには、次の手順に従って Jenkins パイプラインを作成します。
Jenkins パイプラインを作成する方法
Jenkins ダッシュボードにログインしたら、次のようにします。
ステップ 1) クリックしてください "+" Jenkins ダッシュボードの左側にあるボタンをクリックしてパイプラインを作成します。
ステップ 2)
- パイプライン ビューに名前を付けるように求められます。 それを「」と呼ぶことにします。Guru99 パイプラインこのデモの期間中は。
- 選択する パイプライン ビューを構築する 下 オプション
- クリック ok
ステップ 3) 次のページでは、Jenkins パイプラインを構成するための詳細をいくつか入力するよう求められます。デフォルトの設定を受け入れ、設定の最初のジョブを選択するようにしてください。
ソフトウェアの制限をクリック 一緒にお仕事をしてみたい方はこちらまで その後 OK.
これにより、以下に示すように、アイテムのサンプル パイプライン ビューが表示されます。
パイプラインビルドの実行
ステップ 1) パイプライン ビルドを実行するには、最初にジョブをチェーンする必要があります。 このためには、最初のジョブに移動し、「構成」をクリックします。
ステップ 2) さて、以下では ビルドトリガー、 他のプロジェクトがビルドされた後にビルドする オプションを選択します。
これで、すべてのジョブのチェーンが作成されました。
ステップ 3) をインストールします。 ビルドパイプラインビュー まだインストールされていない場合はプラグインをインストールします。
ステップ 4) Jenkins ダッシュボードに移動し、「」をクリックしてビューを作成します。+" ボタン。 を選択 ビルドパイプラインビュー オプションをクリックして OK.
ステップ 5) 下 パイプラインビューの設定探します パイプラインの流れ.
パイプラインの流れ、実行する最初のジョブを選択します。 次に、図に示すように、他のジョブにチェーンがあるジョブを選択します。 ステップ 1 および ステップ 2.
ここで私たちが選んだのは、 Guru99 プロジェクト 1 初期ジョブとして、他のジョブにチェーンされます。 したがって、ジョブは XNUMX つずつパイプラインで実行されます。
Jenkins パイプラインの実行中は、赤と緑のステータス シンボルを使用してステータスを確認できます。 赤はパイプラインが失敗したことを意味し、緑は成功を示します。
この Jenkins パイプラインの例では、ボタンが緑色であることがわかります。 したがって、パイプラインは成功します。
Jenkins パイプラインの実行
ソフトウェアの制限をクリック ラン Jenkins パイプラインを実行します。 次のようになります。
上記の Jenkins パイプライン スクリプトの例では、単純な「helloworld.java」プログラムを示しています。ただし、リアルタイム プロジェクトでは、Jenkins で複雑なパイプラインを作成して構築する責任があります。サンプルのパイプライン ビューについては、以下を参照してください。
Jenkins パイプラインを使用したベスト プラクティス:
- 本物の Jenkins パイプラインを使用する
- パイプラインをコードとして開発する
- パイプライン内のセットアップ以外の作業はすべてステージ ブロック内で発生する必要があります。
- パイプライン内の重要な作業はすべて、ノード ブロック内で実行する必要があります。
- ノード ブロック内では入力を使用しないでください。
- env グローバル変数を使用して環境変数を設定しないでください
- 入力をタイムアウトでラップする