継続的デプロイについて
継続的デプロイ (CD) は、自動化を使用してソフトウェアの更新プログラムを公開およびデプロイする方法です。 一般的な CD プロセスの一環として、コードはデプロイ前に自動的にビルドされてテストされます。
継続的デプロイは、多くの場合、継続的インテグレーションと組み合わされます。 継続的インテグレーションの詳細については、「GitHub Actions による継続的インテグレーションについて」を参照してください。
GitHub Actions を使用する継続的デプロイについて
GitHub Actions ワークフローを設定して、ソフトウェア製品をデプロイできます。 製品が意図したとおりに動作することを確認するため、ワークフローでリポジトリ内のコードをビルドし、デプロイする前にテストを実行できます。
CD ワークフローは、GitHub イベントが発生したとき (たとえば、新しいコードがリポジトリの既定のブランチにプッシュされたとき)、設定されたスケジュールで、手動で、またはリポジトリ ディスパッチ Webhook を使用して外部イベントが発生したときに実行するように、設定できます。 ワークフローを実行できるタイミングの詳細については、「ワークフローをトリガーするイベント」を参照してください。
GitHub Actions には、デプロイをより詳細に制御できる機能が用意されています。 たとえば、環境を使用して、ジョブの続行に承認を要求したり、ワークフローをトリガーできるブランチを制限したり、シークレットへのアクセスを制限したりできます。 コンカレンシーを使用して、CD パイプラインを、最大 1 つの進行中のデプロイと 1 つの保留中のデプロイに制限できます。 これらの機能の詳細については、「GitHub Actions を使用してデプロイする」と「デプロイに環境の使用」を参照してください。
OpenID Connect を使用してクラウド リソースにアクセスする
GitHub Actions ワークフローが OpenID Connect (OIDC) をサポートするクラウド プロバイダーのリソースにアクセスする必要がある場合、そのクラウド プロバイダーで直接認証されるようにワークフローを構成できます。 これにより、有効期間の長いシークレットとしてこれらの資格情報の格納を停止し、その他のセキュリティ上の利点を提供できます。 詳しくは、「OpenID Connect を使ったセキュリティ強化について」をご覧ください。
ワークフロー テンプレートとサード パーティのアクション
GitHub では、Azure Web App など、いくつかの一般的なサービスのデプロイ ワークフロー テンプレートが提供されます。 ワークフロー テンプレートの基本的な使用方法については、「ワークフロー テンプレートの使用」を参照するか、配置ワークフロー テンプレートの完全な一覧を参照してください。 また、「Azure App Service への Node.js のデプロイ」など、特定の配置ワークフローに関するより詳細なガイドをチェックすることもできます。
また、多くのサービス プロバイダーでは、サービスにデプロイするための GitHub Marketplace に対するアクションも提供しています。 完全な一覧については、「GitHub Marketplace」を参照してください。