繁体   English   中英

使用CircleCI部署到Firebase托管

[英]Deploying to Firebase Hosting using CircleCI

我正试图弄清楚如何使用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)

我只需要这样做,有一个更简单的方法

  1. 在您的计算机上,您可以通过键入来获取访问令牌

     firebase login:ci 
  2. 将该标记保存为circleci中的环境变量$FIREBASE_TOKEN
  3. 对于部署步骤,您可以跳过登录:

     deployment: production: branch: master commands: - firebase deploy --token=$FIREBASE_TOKEN --non-interactive 

上面其他答案的一小部分......

为了避免在每个构建的circle ci中全局安装firebase-tools:

修改你的package.json文件,将firebase-tools包含为dev依赖项,如下所示:

npm install --save-dev firebase-tools

然后在你的circle.yml文件中:

deployment:
  production:
    branch: master
    commands:
      - ./node_modules/.bin/firebase deploy --token=$FIREBASE_TOKEN --non-interactive

对于偶然发现这个问题的其他人来说,这些是我必须采取的步骤,以使CircleCI(以及可能是任何其他CI)与Firebase Hosting一起工作。

  1. 生成CI令牌: firebase login:ci
  2. 将该标记保存为ENV var( FIREBASE_TOKEN
  3. 在部署脚本中使用令牌: firebase deploy --token=$FIREBASE_TOKEN --non-interactive

Firebase最近添加了login:ci以防止人们使用个人部署令牌进行CI服务。

这是我的初始设置,仅部署master,跳过测试

  1. 在本地计算机上运行npm install -g firebase-tools
  2. 运行firebase login:ci以获取本地计算机上的令牌
  3. 运行firebase init。 这将创建firebase.json以确保它已提交
  4. 在circileci项目的生成设置配置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

以下是我们部署到CircleCi的过程。

  1. 将您的用户名和密码存储为CircleCi中项目级别的环境变量。

  2. 编辑你的circle.yml

     deployment: production: branch: your_branch commands: - npm install -g firebase-tools - firebase login --email $FIREBASE_USERNAME --password $FIREBASE_PASSWORD - firebase deploy 
  3. 推送到您的分支机构

似乎工作正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM