diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8c32236 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +vscode \ No newline at end of file diff --git a/doc/HandsOn_Slide.md b/doc/HandsOn_Slide.md new file mode 100644 index 0000000..63831e2 --- /dev/null +++ b/doc/HandsOn_Slide.md @@ -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にぜひ挑戦してみてください! diff --git a/compose.yml b/docker/compose.yml similarity index 100% rename from compose.yml rename to docker/compose.yml diff --git a/init.groovy.d/basic-security.groovy b/docker/init.groovy.d/basic-security.groovy similarity index 100% rename from init.groovy.d/basic-security.groovy rename to docker/init.groovy.d/basic-security.groovy diff --git a/init.groovy.d/customize-jenkins.groovy b/docker/init.groovy.d/customize-jenkins.groovy similarity index 100% rename from init.groovy.d/customize-jenkins.groovy rename to docker/init.groovy.d/customize-jenkins.groovy