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

138 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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. サンプルアプリケーションのビルドとテスト
5. Gitea Webhookを使った自動トリガー
6. 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.py` と `test_app.py`
```python
# app.py
def add(a, b):
return a + b
```
```python
# 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にぜひ挑戦してみてください