jenkins/doc/HandsOn_Slide.md
2024-11-13 18:40:25 +09:00

3.9 KiB
Raw Permalink Blame History

marp: true theme: default class: lead paginate: true footer: "Jenkins CI/CD ハンズオン" # Jenkins CI/CD ハンズオン - CI/CDの基礎を理解する - Jenkinsでの自動化ワークフローを体験 - GiteaとMattermostを活用した簡単なCI/CDパイプライン構築

アジェンダ

  1. Jenkinsの概要
  2. 「Hello World」ジョブの作成
  3. サンプルアプリケーションのビルドとテスト
  4. Gitea Webhookを使った自動トリガー
  5. Mattermost通知の設定

Jenkinsの概要

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

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

  1. ジョブの作成

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

    • Build Steps → ビルド手順の追加 → 「シェルの実行」
    • コマンド: echo "Hello, World!"
  3. 実行と確認

    • 「ビルド実行」ボタンをクリック
    • Buildsに追加された履歴を開き、コンソール出力で結果を確認

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. Giteaリポジトリの設定

    • 「ソースコード管理」→「Git」を選択
    • リポジトリURLを入力、資格情報を追加
    • 「ビルドするブランチ」を「main」に変更
  3. ビルド設定

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

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

Step 3: Gitea Webhookでの自動トリガー

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

    • 「ビルド・トリガ」→「GitHub hook trigger for GITScm polling」を有効化
  2. Giteaの設定

    • Giteaリポジトリの 設定 → Webhook → Webhook追加 → Gitea
    • URL: http://<使っているjenkinsのURL>/github-webhook/
    • Content typeはapplication/json
  3. 確認

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

Step 4: Mattermost通知の設定

  1. Mattermost Webhookの設定

    • Mattermostの統合機能で「内向きのウェブフック」を選択
    • 新しいWebhookを作成し、Webhook URLを取得
    • 通知先のチャンネルを指定
  2. JenkinsのMattermost通知設定

    • Jenkinsのプラグイン管理から「Mattermost Notification」をインストール
    • ジョブの「ビルド後の処理」で「Mattermost Notifications」を追加し、Webhook URLや通知内容を設定
    • EndpointがWebhook URLでProject Channelは通知送信先チャンネル名
  3. 通知の確認

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

まとめ

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

お疲れ様でした!

CI/CDにぜひ挑戦してみてください