スライド追加とディレクトリ整理
This commit is contained in:
parent
b75dcc92cf
commit
b4ac62eeb5
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
vscode
|
152
doc/HandsOn_Slide.md
Normal file
152
doc/HandsOn_Slide.md
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
---
|
||||||
|
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.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. **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にぜひ挑戦してみてください!
|
Loading…
Reference in New Issue
Block a user