Firebase へのデプロイ
このノウハウガイドでは、CircleCI を Firebase にデプロイするための設定方法について説明します。
はじめに
このページでは、Firebase にデプロイするための設定について説明します。 Firebase にデプロイするには、CircleCI で firebase-tools
をグローバルにインストールしようとしてもできないため、firebase-tools
をプロジェクトの devDependencies に追加する必要があります。
1. ツールのインストール
npm install --save-dev firebase-tools
2. CLI トークンの生成
以下のコマンドを使用して、Firebase CLI トークンを生成します。
firebase login:ci
3. プロジェクトの環境変数にトークンを追加
生成されたトークンを CircleCI プロジェクトの環境変数に $FIREBASE_DEPLOY_TOKEN
として追加します。 シークレットのマスキング を活用するには、環境変数は プロジェクトレベル で、または コンテキスト 内で設定することをお勧めします。
デプロイの例
次の例は、Firebase ジョブとプロジェクトの .circleci/config.yml
ファイルにデプロイを追加する方法を示します。 このスニペットは、アプリケーションをビルドするための build-job
というジョブが既に存在することを前提としています。また、ビルドジョブが完了して、かつメインブランチにいる場合にのみデプロイジョブを実行するデプロイワークフローを紹介します。
version: 2.1
deploy-job:
docker:
- image: <docker-image-name-tag>
auth:
username: mydockerhub-user
password: $DOCKERHUB_PASSWORD # context / project UI env-var reference
working_directory: /tmp/my-project
steps:
- run:
name: Deploy Main to Firebase
command: ./node_modules/.bin/firebase deploy --token=$FIREBASE_DEPLOY_TOKEN
workflows:
deploy:
jobs:
- build-job
- deploy-job:
requires:
- build-job
filters:
branches:
only: main
Google Cloud Functions
Firebase で Google Cloud Functions を使用する場合は、以下の行を .circleci/config.yml
に追加し、Google Cloud Functions が保存されているフォルダー (この場合は 'functions') に移動して、npm install
を実行するように CircleCI に指示します。
- run: cd functions && npm install
ドキュメントの改善にご協力ください
このガイドは、CircleCI の他のドキュメントと同様にオープンソースであり、 GitHub でご利用いただけます。 ご協力いただき、ありがとうございます。
- このページの編集をご提案ください (最初に「コントリビューションガイド」をご覧ください)。
- ドキュメントの問題点を報告する、またはフィードバックやコメントを送信するには、GitHub で issue を作成してください。
- CircleCI は、ユーザーの皆様の弊社プラットフォームにおけるエクスペリエンスを向上させる方法を常に模索しています。 フィードバックをお寄せいただける場合は、リサーチコミュニティにご参加ください。
サポートが必要ですか
CircleCI のサポートエンジニアによる、サービスに関する問題、請求およびアカウントについての質問への対応、設定の構築に関する問題解決のサポートを行っています。 サポートチケットを送信して、CircleCI のサポートエンジニアにお問い合わせください。日本語でお問い合わせいただけます。
または、 サポートサイト から、サポート記事やコミュニティフォーラム、トレーニングリソースをご覧いただけます。
CircleCI Documentation by CircleCI is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.