jenkins/doc/HandsOn_Slide.md
2024-11-12 17:11:48 +09:00

4.1 KiB
Raw Blame History

marp: true theme: default class: lead paginate: true footer: "Jenkins CI/CD ハンズオン" # Jenkins CI/CD ハンズオン - CI/CDの基礎を理解する - Jenkinsでの自動化ワークフローを体験 - 簡単なアプリケーションのビルドとテスト

アジェンダ

  1. Jenkinsの概要
  2. 「Hello World」ジョブの作成
  3. サンプルアプリケーションのビルドとテスト
  4. 簡単なデプロイ処理
  5. GitHub Webhookを使った自動トリガー
  6. (オプション) Slack通知の設定

Jenkinsの概要

  • Jenkinsの役割CI/CDツールとしての役割
  • 基本用語:ジョブ、パイプライン、ビルド、ワークスペース、ノード
  • Webインターフェース:メインダッシュボードや基本設定の場所を確認

Step 1: 「Hello World」ジョブの作成

  1. ジョブの作成

    • 「新しいジョブ作成」 → 「フリースタイルプロジェクト」
    • ジョブ名を「Hello World」に設定
  2. ビルド設定

    • 「ビルド」セクション → 「シェルの実行」
    • コマンド: echo "Hello, World!"
  3. 実行と確認

    • 「ビルド」ボタンをクリック
    • コンソール出力で結果を確認

Step 2: サンプルアプリケーションのビルドとテスト

準備

  • サンプルリポジトリ
    • 簡単なPythonアプリケーションapp.pytest_app.py
# 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 (続き): ビルドとテストの自動化

  1. 新規ジョブ作成

    • 「新しいジョブ作成」 → 「フリースタイルプロジェクト」
    • ジョブ名「Pythonアプリビルドとテスト」
  2. Gitリポジトリの設定

    • 「ソースコード管理」→「Git」を選択
    • リポジトリURLを入力
  3. ビルド設定

    • 「シェルの実行」→ python3 -m unittest test_app.py
  4. 実行と確認

    • ジョブを実行し、テスト結果を確認

Step 3: デプロイ処理の追加

  1. アーティファクト保存

    • 「ビルド後の処理」 → 「アーカイブするアーティファクト」
    • 保存するファイル:*.zip
  2. シェルコマンド追加

    • 「シェルの実行」→ zip -r app.zip .
  3. 実行と確認

    • ジョブ実行後、ZIPファイルが生成され、アーティファクトとして保存されていることを確認

Step 4: GitHub Webhookでの自動トリガー

  1. ビルドトリガーの設定

    • 「ビルドトリガー」→「GitHub hook trigger for GITScm polling」
  2. GitHubの設定

    • GitHubリポジトリの「Settings > Webhooks」→ Webhook追加
    • URL例: http://localhost:8081/github-webhook/
    • Content typeはapplication/json
  3. 確認

    • GitHubに変更をプッシュし、Jenkinsでジョブが自動的に実行されることを確認

Step 5 (オプション): Slack通知の設定

  1. Slackプラグイン設定

    • JenkinsにSlack Notification Pluginをインストール
    • SlackのワークスペースでWebhookを設定し、トークンを取得
  2. Slack通知の追加

    • 「ビルド後の処理」→「Slack通知」
    • 成功時・失敗時の通知を設定
  3. 通知の確認

    • ビルド実行後、Slackに通知が届くことを確認

まとめ

  • JenkinsでCI/CDの基本フローを体験
  • 手動ジョブ作成、Gitリポジトリ連携、自動テスト、デプロイ、通知
  • CI/CDの自動化とそのメリットを理解

お疲れ様でした!

  • Jenkinsの基本操作を学べましたか
  • 継続的インテグレーションとデリバリーの流れを理解できましたか?

Jenkinsを使ったCI/CDにぜひ挑戦してみてください