20

CircleCI を使用して Firebase Hosting にデプロイする方法を見つけようとしています。私の知る限り、SSH キーでデプロイをセットアップする方法がないため、デプロイ中に Firebase にログインしてコードをプッシュする方法を見つけようとしています。これまでに試したことは、私の circle.yml で次のとおりです。

// circle.yml
deployment:
  production:
    branch: circle-deploy
    commands:
      - npm install -g firebase-tools
      - firebase login | echo -e "${FIREBASE_EMAIL}\n${FIREBASE_PASSWORD}"
      - firebase deploy

ただし、次のエラーが発生し続け、それを修正する方法がわかりません。

stream.js:94
      throw er; // Unhandled stream error in pipe.
            ^
Error: write EPIPE
    at errnoException (net.js:904:11)
at Object.afterWrite (net.js:720:19)
4

5 に答える 5

16

上記の他の回答への小さな追加...

すべてのビルドで、firebase-tools をサークル ci にグローバルにインストールしないようにするには:

次のように、package.json ファイルを変更して、firebase-tools を開発依存関係として含めます。

npm install --save-dev firebase-tools

次に、circle.yml ファイルで次のようにします。

deployment:
  production:
    branch: master
    commands:
      - ./node_modules/.bin/firebase deploy --token=$FIREBASE_TOKEN --non-interactive
于 2016-04-08T15:59:03.393 に答える
7

この質問に出くわした他の人のために、これらは、Firebase Hosting で動作する CircleCI (およびおそらく他の CI) を取得するために実行しなければならなかった手順です。

  1. CI トークンを生成します。firebase login:ci
  2. そのトークンを ENV 変数として保存します ( FIREBASE_TOKEN)
  3. デプロイ スクリプトでトークンを使用します。firebase deploy --token=$FIREBASE_TOKEN --non-interactive

Firebase はlogin:ci最近、CI サービスに個人用デプロイ トークンを使用できないようにするために を追加しました。

于 2016-01-21T23:42:42.717 に答える
3

これは私の初期設定です。マスターのみを展開し、テストをスキップします

  1. ローカル マシンでnpm install -g firebase-toolsを実行します
  2. firebase login:ciを実行して、ローカル マシンでトークンを取得します
  3. firebase init を実行します。これによりfirebase.jsonが作成され、コミットされていることを確認します
  4. circileciのプロジェクトの BUILD SETTINGS の Environment Variables でFIREBASE_TOKENを構成します。

//circle.yml

general:
  branches:
    only:
      - master

test:
  override:
    - echo "test"

deployment:
  production:
    branch: master
    commands:
      - npm install -g firebase-tools
      - firebase deploy --token=$FIREBASE_TOKEN --non-interactive
于 2016-11-14T23:35:49.923 に答える