Step11: CI/CDパイプライン
このStepでは、CI/CD パイプラインの概念と GitHub Actions を学び、自作アプリケーションに対してコード品質チェック・コンテナビルド・デプロイまでを自動化するパイプラインを構築します。
1. 講座の履修
CI/CDパイプライン講座 の以下の章を実施してください。すでに同等の知識がある場合は、講座の履修はスキップしても構いません。
2. 課題の実施
2.1 目的・背景
Step 3 で組み込んだ静的解析・自動テスト、Step 9 で作ったコンテナを、GitHub Actions で一気通貫に自動化します。アプリケーションのコード変更が、ブランチへの push を起点に安全に本番へ反映される流れを整えることが目標です。
2.2 実施要件
アプリケーションの CI/CD
自作のバックエンドとフロントエンドそれぞれに対して、以下の一連の処理を GitHub Actions で自動化してください。
- 静的解析(Step 3 で組み込んだツールを実行)
- 自動テスト(Step 3 で組み込んだテストを実行)
- コンテナイメージのビルドとレジストリへのプッシュ
- コンテナ実行環境(Step 10 で構築したもの)へのデプロイ
2.3 デプロイ方式(任意)
アプリケーションのデプロイ方式として、Blue/Green デプロイメントなど無停止で切り替えができる方式を採用します。リリース中のダウンタイムをなくし、問題があった場合に旧環境へすぐ切り戻せるようにすることが目的です。
2.4 ブランチ保護(任意)
本番反映されるブランチに対して、レビュー通過・CI パス・直接プッシュ禁止などの保護設定を行います。レビューや自動チェックを通過していない変更が本番に紛れ込まないようにし、事故を未然に防ぐことが目的です。
2.5 判定基準
動作確認
以下のシナリオが自動で成功することを確認してください。
- 自作アプリケーション(バックエンド・フロントエンド)のコードに変更を push すると、GitHub Actions で静的解析・自動テスト・ビルド・デプロイが順に実行され、公開 URL に反映される
加えて、デプロイ後の公開 URL に対して、作成したアプリケーションの仕様に応じた疎通確認を行ってください(例:フロントエンドは画面が正しく表示されるか、バックエンドは主要なエンドポイントが期待どおりのレスポンスを返すか、など)。
机上確認
任意課題
任意課題(デプロイ方式・ブランチ保護)に取り組んだ場合は、実際の設定画面のスクリーンショットを添付してください。
- デプロイ方式: 採用したデプロイ方式の設定内容と、なぜその方式にしたか
- ブランチ保護: どのようなルールで保護しているか
2.6 課題提出
下記内容を提出フォームより提出してください(提出はプレミアムプランでご利用いただけます)。
| 項目 | 内容 |
|---|---|
| 概要 | 構築したCI/CDパイプラインの構成・カバーしている範囲を簡潔に記載する |
| 実装コード | GitHub Actions のワークフローファイル、および反映した GitHub リポジトリの URL |
| 動作確認 | CI/CD が自動で実行される様子を GitHub Actions の実行結果のスクリーンショットで記載する。加えて、作成したアプリケーションの仕様に応じた疎通確認結果を記載する |
| 机上確認 | 任意課題(デプロイ方式・ブランチ保護)に取り組んだ場合は、設定がわかる画面のスクリーンショットを添付し、その方針を記載する |
| まとめ | 実装中に苦労したこと、工夫したこと、学んだこと |