ステージング環境へのデプロイ
本番前のテスト用に、アプリケーションをステージング環境へ自動デプロイするワークフローを設定します。
「ステージング環境へのデプロイ」はCoddyKit上の無料CI/CD with GitHub Actions & DevOps Pipelinesレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCI/CD with GitHub Actions & DevOps Pipelines学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 CI/CD with GitHub Actions & DevOps Pipelinesコースには全4レッスンが含まれています。
ステージング環境とは
アプリに新機能を実装したとします。それを全員に公開する前に(本番環境へ反映する前に)、安全で現実に近い環境でテストしたいはずです。そこで活用するのがステージング環境です。
ステージング環境は、本番環境のコピーです。リリース前の最終テストに使用し、実際のユーザーに影響を与えることなく、問題を発見して品質を確認できます。
ステージングと本番環境の違い
ステージング環境は本番環境を再現しますが、目的は異なります。
- ステージング: 品質保証(QA)、ユーザー受け入れテスト(UAT)、最終確認に使用します。利用するのはテスターや関係者など、限られた対象者だけです。
- 本番環境: すべてのエンドユーザーが利用する稼働環境です。ここで問題が発生すると、顧客に直接影響します。
まずステージング環境へデプロイすることは、本番環境でのリスクを最小限に抑えるための重要な手順です。
GitHub Environments機能
GitHub Actionsには、Environmentsという強力な機能があります。これを使うと、リポジトリ内にstagingやproductionのような論理的な環境を定義できます。
Environmentsを使うと、次のことができます。
- 保護ルール(手動承認、待機タイマーなど)を適用する。
- 環境ごとのシークレットを管理する。
- 特定の環境へのデプロイを追跡する。
ステージング環境の宣言
ワークフローで環境を使用するには、まずリポジトリの設定で環境を定義します。
- GitHubリポジトリに移動します。
- Settings > Environmentsをクリックします。
- New environmentをクリックし、たとえば
stagingという名前を付けます。
ここで、デプロイにレビュアーの承認を必須にするなどの保護ルールを追加できます。
基本的なデプロイワークフローの構成
では、GitHub Actionsにstaging環境へデプロイするよう指示する方法を見てみましょう。ジョブの中で環境を指定します。
name: Deploy to Staging
on: push
jobs:
deploy-to-staging:
runs-on: ubuntu-latest
environment: staging # This links to your 'staging' environment
steps:
- name: Say Hello
run: echo "Deploying to staging!"環境の保護設定
ワークフロー内のenvironment: stagingという行は、デプロイにラベルを付けるだけではありません。リポジトリの設定でstaging環境の保護ルールを設定している場合、そのルールが自動的に適用されます。
たとえば手動承認を必須にしている場合、このジョブは権限を持つ担当者がデプロイを確認して承認するまで一時停止します。
アプリケーションのビルド
通常、デプロイの前にアプリケーションをビルドする必要があります。これには、コードのコンパイル、テストの実行、アセットのパッケージ化などが含まれます。これらの手順をジョブに追加してみましょう。
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js (Example build step)
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install dependencies
run: npm ci
- name: Build application
run: npm run buildビルドしたアーティファクトのデプロイ
ビルドが完了したら、次はアプリケーションのファイルをステージングサーバーへ転送します。通常は、SSH、FTP、またはクラウド固有のデプロイツールを使用します。
次は概念的な手順です。実際の環境では、echoを実際のデプロイコマンドに置き換えてください。
- name: Deploy to Staging Server
run: |
echo "Simulating deployment to staging..."
# scp -r ./dist user@staging.example.com:/var/www/html
# Or use a specific deployment action for AWS, Azure, etc.すべてを組み合わせる: ステージングワークフロー
この完全なワークフローは、developブランチへのプッシュをトリガーに実行されます。コードをチェックアウトし、アプリをビルドした後、設定した保護ルールに従って、概念的にstaging環境へデプロイします。
name: Deploy to Staging Environment
on:
push:
branches:
- develop # Trigger only on pushes to the 'develop' branch
jobs:
deploy:
runs-on: ubuntu-latest
environment: staging # Link this job to the 'staging' environment
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js (Example)
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install dependencies
run: npm ci
- name: Build application
run: npm run build
- name: Deploy to Staging Server
run: echo "Deployment to staging completed!"ステージングデプロイの理解度チェック
GitHub Actionsのワークフローを設定してステージング環境へデプロイする方法を学びました。ここで知識を確認してみましょう。
振り返り: ステージングへのデプロイ
よくできました。GitHub Actionsを設定してステージング環境へデプロイする方法を学びました。
- ステージング環境は、本番環境に近い構成で本番前のテストを行う環境です。
- GitHubのEnvironmentsは、デプロイの安全性とシークレットの管理に役立ちます。
- ワークフローでは
environmentキーを使って特定の環境を対象にします。 - この手順によりリスクを最小限に抑え、本番環境へスムーズに移行できます。
次は、環境変数とシークレットを使って機密情報を管理する方法を見ていきます。
よくある質問
「ステージング環境へのデプロイ」レッスンは無料ですか?
はい。「ステージング環境へのデプロイ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、CI/CD with GitHub Actions & DevOps Pipelinesコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 CI/CD with GitHub Actions & DevOps Pipelinesコースには全4レッスンが含まれています。
「ステージング環境へのデプロイ」で何を学びますか?
本番前のテスト用に、アプリケーションをステージング環境へ自動デプロイするワークフローを設定します。 ブラウザで直接実行するハンズオンコードでCI/CD with GitHub Actions & DevOps Pipelinesを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
CI/CD with GitHub Actions & DevOps Pipelinesを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCI/CD with GitHub Actions & DevOps Pipelinesは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「ステージング環境へのデプロイ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCI/CD with GitHub Actions & DevOps Pipelinesレッスンでコードを書いて実行できますか?
はい。すべてのCI/CD with GitHub Actions & DevOps Pipelinesレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Continuous Deployment 入門
- ステージング環境へのデプロイ
- 環境変数とシークレット
- 承認ゲートによる本番環境へのデプロイ