View on GitHub

jenkins-jobs-template

Jenkins jobs template

jenkins-jobs-template

Jenkins Job パイプライン(Jenkinsfile)の基礎的なテンプレート。
環境の構築から行い、基本的な Jenkins の操作、パイプラインの構文、シンタックスを定義してジョブを実行して結果を確認できます。
 
番号順で行うと環境設定からパイプラインの基本的な構文、実行結果の確認方法等理解できます。
 

1. Setup

1.1 Node

:exclamation: ご注意:Node は本番環境を想定して構築している内容ではありません。

1.1.1 Jenkins master

こちら の手順で Jenkins master を Dcoker で構築します。 また、基本的な Docker 操作も記載しています。
master のセットアップが終わったら 1.1.2 Jenkins slave 構築前に Swarm plugin を追加してください。

1.1.2 Jenkins slave

こちら の手順で Jenkins slave を Dcoker で構築します。

2. Jenkinsfile エディター

テキストエディタなら何でも良いですが、Visual Studio Code を推奨します。
 

3. プラグイン導入

テンプレートの動作を確認する為に追加で必要なプラグインです。
(Required に :heavy_check_mark: が付いているものは必須です。)

plugins Required Description
Swarm :heavy_check_mark: 通常は master から slave に接続しますが、このプラグインは slave から master に接続できるようになります。 [追加手順]
Blue Ocean :heavy_check_mark: パイプラインの視覚化で利用します。 [追加手順と利用方法]
NodeJS - Jenkins から NodeJS を利用できるようになります。 [追加手順と利用方法]

4. Templates

凡例:

4.1 Syntax

このテンプレートで利用する主な Syntax です。
何れも master ノードで動作する Jenkinsfile です。

Syntax Jenkinsfile Script Path Description Results
node :page_facing_up: templates/syntax/syntax-node.Jenkinsfile パイプラインの作業をノードブロック内に制限します、必須ではありませんが意図的に指定ノードのみで作業させたいときに指定する重要な Syntax です。 :page_with_curl:
stage :page_facing_up: templates/syntax/syntax-stage.Jenkinsfile ビルド、テスト、デプロイ等のタスク単位で進捗状況を視覚化または表示する単位で纏める事ができます。当解説では主に視覚化を目的で Blue Ocean プラグインを利用しています。 :page_with_curl:
parallel :page_facing_up: templates/syntax/syntax-parallel.Jenkinsfile 並列で各タスク処理するように指定する Syntax です。Jenkinsfile は並列で複数のリポジトリから git clone してビルド → テスト → デプロイするパターンのテンプレートです。 :page_with_curl:

その他にも多数の Syntax があります、公式の Pipeline Syntax を参照ください。

4.2 single node

単一ノードのみで動作するテンプレートです。

Title Node Syntax Jenkinsfile Script Path Description Results
hello world master node, sh :page_facing_up: templates/single-node/hello-world.Jenkinsfile master ノードのシェルスクリプトで echo します。 :page_with_curl:, :page_with_curl:
hello world linux-slave :page_facing_up: template/single-node-only/linux-slave-hello-world.Jenkinsfile linux-salve のシェルスクリプトで echo します。 [作成手順補足] :page_with_curl:, :page_with_curl:

4.3 multi nodes

複数ノードで動作するテンプレートです。

Title Nodes Syntax Jenkinsfile Script Path Description Results
multiple nodes hello world master, linux-slave node, sh :page_facing_up: templates/multi-node/master-linux-node-hello-world.Jenkinsfile master → linux-slave の順で echo します。 :page_with_curl:, :page_with_curl:
multiple nodes stage hello world master, linux-slave node, stage, sh :page_facing_up: templates/multi-node/master-linux-node-hello-world-stage.Jenkinsfile master → linux-slave の順でステージブロックで echo します。 [ステージブロック補足] :page_facing_up:, :page_facing_up:
multiple nodes stage parallel hello world master, linux-slave node, stage, parallel, sh :page_facing_up: templates/multi-node/master-linux-node-stage-parallel.Jenkinsfile master, linux-slave の並列で echo します。[parallel 補足] :page_facing_up:, :page_facing_up:

5. example

より実用的なパイプラインジョブの example です。
追加でプラグイン導入、slave の環境設定が必要になります。

example Nodes Syntax Jenkinsfile Script Path Description Results
Angular build linux-slave deleteDir, checkout, nodejs, dir, archiveArtifacts, fingerprint :page_facing_up: templates/example/example-linux-slave-angular-build.Jenkinsfile linux-slave で Angular10 のプロジェクトをビルドして成果物に保存して指紋もとります。 NodeJS のプラグインが必要です。 :page_facing_up:, :page_facing_up:, :page_facing_up:
.NET Core build linux-slave deleteDir, checkout, archiveArtifacts, fingerprint :page_facing_up: templates/example/example-linux-slave-dotnet-build.Jenkinsfile linux-slave で .NET Core のプロジェクトをビルドして成果物に保存して指紋もとります。 linux-slave に .NET Core SDK のインストールが必要です。 :page_facing_up:, :page_facing_up:, :page_facing_up:

:book: リファレンス:

 
 
 
 
 
 


当ドキュメントに記載されている会社名、システム名、製品名は一般に各社の登録商標または商標です。
なお、本文および図表中では、「™」、「®」は明記しておりません。

免責事項

当ドキュメント上の掲載内容については細心の注意を払っていますが、その情報に関する信頼性、正確性、完全性について保証するものではありません。
掲載された内容の誤り、および掲載された情報に基づいて行われたことによって生じた直接的、また間接的トラブル、損失、損害については、筆者は一切の責任を負いません。
また当ドキュメント、およびドキュメントに含まれる情報、コンテンツは、通知なしに随時変更されます。