4.1 KiB
4.1 KiB
marp: true
theme: default
class: lead
paginate: true
footer: "Jenkins CI/CD ハンズオン"
# Jenkins CI/CD ハンズオン
- CI/CDの基礎を理解する
- Jenkinsでの自動化ワークフローを体験
- 簡単なアプリケーションのビルドとテスト
アジェンダ
- Jenkinsの概要
- 「Hello World」ジョブの作成
- サンプルアプリケーションのビルドとテスト
- 簡単なデプロイ処理
- GitHub Webhookを使った自動トリガー
- (オプション) Slack通知の設定
Jenkinsの概要
- Jenkinsの役割:CI/CDツールとしての役割
- 基本用語:ジョブ、パイプライン、ビルド、ワークスペース、ノード
- Webインターフェース:メインダッシュボードや基本設定の場所を確認
Step 1: 「Hello World」ジョブの作成
-
ジョブの作成:
- 「新しいジョブ作成」 → 「フリースタイルプロジェクト」
- ジョブ名を「Hello World」に設定
-
ビルド設定:
- 「ビルド」セクション → 「シェルの実行」
- コマンド:
echo "Hello, World!"
-
実行と確認:
- 「ビルド」ボタンをクリック
- コンソール出力で結果を確認
Step 2: サンプルアプリケーションのビルドとテスト
準備
- サンプルリポジトリ:
- 簡単なPythonアプリケーション(
app.py
とtest_app.py
)
- 簡単なPythonアプリケーション(
# app.py
def add(a, b):
return a + b
# test_app.py
import unittest
from app import add
class TestApp(unittest.TestCase):
def test_add(self):
self.assertEqual(add(1, 2), 3)
if __name__ == "__main__":
unittest.main()
Step 2 (続き): ビルドとテストの自動化
-
新規ジョブ作成:
- 「新しいジョブ作成」 → 「フリースタイルプロジェクト」
- ジョブ名:「Pythonアプリビルドとテスト」
-
Gitリポジトリの設定:
- 「ソースコード管理」→「Git」を選択
- リポジトリURLを入力
-
ビルド設定:
- 「シェルの実行」→
python3 -m unittest test_app.py
- 「シェルの実行」→
-
実行と確認:
- ジョブを実行し、テスト結果を確認
Step 3: デプロイ処理の追加
-
アーティファクト保存:
- 「ビルド後の処理」 → 「アーカイブするアーティファクト」
- 保存するファイル:
*.zip
-
シェルコマンド追加:
- 「シェルの実行」→
zip -r app.zip .
- 「シェルの実行」→
-
実行と確認:
- ジョブ実行後、ZIPファイルが生成され、アーティファクトとして保存されていることを確認
Step 4: GitHub Webhookでの自動トリガー
-
ビルドトリガーの設定:
- 「ビルドトリガー」→「GitHub hook trigger for GITScm polling」
-
GitHubの設定:
- GitHubリポジトリの「Settings > Webhooks」→ Webhook追加
- URL例:
http://localhost:8081/github-webhook/
- Content typeは
application/json
-
確認:
- GitHubに変更をプッシュし、Jenkinsでジョブが自動的に実行されることを確認
Step 5 (オプション): Slack通知の設定
-
Slackプラグイン設定:
- JenkinsにSlack Notification Pluginをインストール
- SlackのワークスペースでWebhookを設定し、トークンを取得
-
Slack通知の追加:
- 「ビルド後の処理」→「Slack通知」
- 成功時・失敗時の通知を設定
-
通知の確認:
- ビルド実行後、Slackに通知が届くことを確認
まとめ
- JenkinsでCI/CDの基本フローを体験
- 手動ジョブ作成、Gitリポジトリ連携、自動テスト、デプロイ、通知
- CI/CDの自動化とそのメリットを理解
お疲れ様でした!
- Jenkinsの基本操作を学べましたか?
- 継続的インテグレーションとデリバリーの流れを理解できましたか?
Jenkinsを使ったCI/CDにぜひ挑戦してみてください!