アプリのデプロイ手順

Front-end アプリケーションを、Hexabase のサーバーから配信するための手順です。

アカウントの登録#

  1. Front-end アプリケーションの開発者は、Deploy 用の Github アカウントを用意する
  2. Hexabase の担当者に、Github アカウントを知らせる
  3. (Hexabase のリポジトリに、Github アカウントを追加する)
  4. Front-end アプリケーションのサブリポジトリを作成する
  5. Hexabase に、サブリポジトリと配信用 URL を知らせる
  6. (Hexabase が、サブリポジトリと配信用 URL を DNS に登録する)

ステージング環境へのデプロイ#

  1. Front-end アプリケーションの開発者は、Front-end アプリケーションのサブリポジトリで、'develop'ブランチに code をプッシュする
  2. Github が、Jenkins に webhook を送信します
  3. Jenkins は Docker イメージを構築し、k8s マニフェストを GCS にアップロードし、Docker イメージを GCR にプッシュします
  4. Google Pub / Sub は GCR の変更をリッスンし、Spinnaker にメッセージを送信します
  5. Spinnaker ステージングパイプラインで自動トリガーが呼び出されます
  6. Spinnaker は GCS および GCR からアーティファクトを取得し、ステージング環境に展開します

本番環境へのデプロイ#

  1. Front-end アプリケーションの開発者は、Front-end アプリケーションのサブリポジトリで、'master'ブランチに code をプッシュする
  2. Spinnaker の生産パイプラインで自動トリガーが呼び出されます
  3. Spinnaker は、Spinnaker Staging Pipeline の最後の実行からのアーティファクトを参照します
  4. Spinnaker は GCS および GCR からアーティファクトを取得し、実稼働環境に展開します

注意事項#

フロントエンドアプリケーションを開発する場合、process.env を使わないでください。あなたのアプリケーションをデプロイするときに問題になる場合があります。フロントエンドアプリケーションの実行環境などを切り替えたい場合は、process.env 以外を使ってください。たとえば、Nuxt.jsの場合 nuxt.config.js が利用できます。