Contents
Jenkins パイプライン 実装 方法:ステップバイステップでCI/CDを実現する
Jenkinsは2026年現在でも最も広く利用されているCI/CDツールの一つです。この記事では、Jenkinsパイプラインの実装手順を初学者向けに解説し、宣言型パイプライン(Declarative Pipeline)を使ったビルド・テスト・デプロイの全フローをステップバイステップで習得します。
Jenkinsの導入と初期設定
Jenkinsを導入するには、Linux/Windows環境での手順が異なります。以下に主要な手順を確認してください。
注意:2026年の技術環境に基づく推奨バージョンはJava 19とMaven 3.10です(※将来的な変更可能性あり)
インストール手順
- Javaのインストール: JenkinsはJava依存関係が必要で、2026年現在ではJava LTSバージョン(例: Java 19)を推奨します。LTSバージョンは安定性とセキュリティが保証されています。
- Jenkinsのダウンロード:
-
Linux:
wget -O /tmp/jenkins.war https://get.jenkins.io/war-stable/latest/jenkins.war(※非推奨サイト使用を避けています)
→ 公式サイトから最新版を確認してください。 -
Windows: 公式サイトからバイナリを取得
- 起動: JavaでJenkinsを起動し、
http://localhost:8080にアクセスします。
JenkinsはJavaの長期サポート(LTS)版を使うことで安定性が向上します。システム要件については公式ドキュメントを参照してください。
初期構成の確認
- ユーザー作成: 初回起動時に管理者アカウントを作成し、セキュリティ設定を行います。
- プラグインのインストール: Blue OceanやGitなどの必要プラグインを事前にインストールします。
宣言型パイプライン(Declarative Pipeline)の基本構文
宣言型パイプラインは、2020年代以降に主流となった「コードとしてのCI/CD」を実現するための構文です。以下が基本的な構造です。
pipelineブロックの定義
|
1 2 3 4 5 6 7 8 9 10 11 |
pipeline { agent any // ジョブを実行するエージェント(マシン)を指定 stages { stage('Build') { // ビルドステージの定義 steps { echo 'ビルド開始' // コンソールにメッセージ出力 } } } } |
- agent: 実行するエージェント(マシン)を指定します。
- stages: ステージのグループで、
stageブロック内で各ステップを定義します。
stagesとstepsの使い分け
| 項目 | 説明 |
|---|---|
| stages | 全体のワークフロー構造を定義する |
| steps | 1つのステージ内で実行される具体的なタスク |
プロジェクト規模に応じて、
whenやpostなどの条件分岐も追加可能です。
Gitリポジトリとの連携方法
JenkinsはGitと連携してソースコードを自動で取得・ビルドできます。以下の手順で連携します。
SSH認証設定(簡略化)
- Credential Managerに登録: Jenkinsの「Manage Credentials」からSSH鍵を登録します。
- Pipeline内でのgit checkout:
groovy
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git url: 'https://github.com/user/repo.git', branch: 'main', credentialsId: 'your-ssh-key'
}
}
}
}
SSH鍵の管理はJenkins自身で自動化されるため、手動での管理を避けると効率的です。
Jenkins vs GitHub Actions
| 項目 | Jenkins | GitHub Actions |
|---|---|---|
| プラットフォーム | 自社インフラ | GitHub本体 |
| 言語サポート | Groovyのみ | YAML(広い言語対応) |
Jenkinsは自社のCIサーバーとして柔軟性が高いですが、GitHub Actionsは開発者向けに特化しています。
ビルド・テスト・デプロイ各ステージの実装例
以下は代表的な3つのステージでのコード例です。それぞれを連携させることでCI/CDパイプラインが完成します。
Mavenによるビルド手順
|
1 2 3 4 5 6 |
stage('Build') { steps { sh 'mvn clean package' // プロジェクトのビルドを実行(Mavenを使用) } } |
- Mavenのバージョン: 2026年ではMaven 3.10以上が推奨されます。
- 依存関係管理:
pom.xmlでライブラリを定義します。
ユニットテスト自動化
|
1 2 3 4 5 6 |
stage('Test') { steps { sh 'mvn test' // テスト実行コマンド } } |
- テストカバレッジの確認:
groovy
post {
always {
junit 'target/surefire-reports/*.xml' // タイムスタンプ付きXMLファイルを収集
}
}
Dockerコンテナへのデプロイ(認証処理注意)
|
1 2 3 4 5 6 7 8 |
stage('Deploy') { steps { sh 'docker build -t myapp .' sh 'docker login myregistry.com' // 認証が必要な場合に実行(※事前にCredential Managerで設定) sh 'docker push myapp' } } |
Dockerコマンドの認証処理(
docker login)は、JenkinsのCredential Managerに登録した情報を使用する必要があります。
Blue Oceanインターフェースによる可視化
Blue OceanはJenkinsのビジュアルUIで、ステージごとの実行フローを直感的に確認できます。
パイプラインダッシュボードの読み方
- ステージの表示: 各ステージの進行状況が色分けされ、成功/失敗が一目でわかります。
- エラーチェック:
- 失敗したステージをクリックすると、実行ログや詳細なエラー情報が表示されます。
エラー時のトレース取得
- Blue Oceanでは「Stage View」で以下の情報を確認できます:
- 実行時間(秒)
- タスクの依存関係
- ステージごとのステータス
パイプラインが失敗した際は、Blue Oceanの「Trace」タブから原因を特定するのが効率的です。
実践例: パイプラインの可視化とトラブルシューティング
ここでは実際のサンプルコードを示し、読者が試してみてください。
サンプルパイプラインスクリプト
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
pipeline { agent any stages { stage('Checkout') { steps { git url: 'https://github.com/user/repo.git', branch: 'main', credentialsId: 'your-ssh-key' } } stage('Build') { steps { sh 'mvn clean package' // Mavenによるビルド実行 } } stage('Test') { steps { sh 'mvn test' // テスト自動化 } } stage('Deploy') { steps { sh 'docker build -t myapp .' sh 'docker push myapp' } } } } |
よくあるエラーケースと解決策
-
SSH認証失敗: Credential Managerに正しい鍵を登録していない。
→ 「Manage Credentials」で鍵の再確認を行う。 -
Mavenビルド失敗:
pom.xmlのバージョンが古い、依存関係の衝突。
→ 依存関係管理ツール(例: BOM)を活用し、最新版を指定。
まとめ
- JenkinsでCI/CDを実装するには、インストール・Git連携・ステージ設計の3つのステップが必要です。
- 宣言型パイプラインはYAML-likeな構文で、ビルド・テスト・デプロイの全フローをコードで管理できます。
- Blue Oceanを使うことで、パイプラインの可視化とトラブルシューティングが容易になります。