首页 > 解决方案 > 如何在构建服务器上使用“firebase login:ci”

问题描述

我正在使用Github Workflows运行 nodejs 构建,我希望能够构建我的项目,然后立即将其部署到我的 firebase 项目。使用 Firebase 部署。但是,如果我想使用 firebase-tools,我必须在构建服务器上登录。但是没有办法通过电子邮件和密码等进行身份验证。有没有办法让我完成我想要完成的事情?firebase-tools在我的构建脚本里面是“react-scripts build && firebase deploy”


这是我的工作流文件 nodejs.yml:


name: Node CI

on: [push]

jobs:
  build:

runs-on: ubuntu-latest

strategy:
  matrix:
    node-version: [8.x, 10.x, 12.x]

steps:
- uses: actions/checkout@v1
- name: Use Node.js ${{ matrix.node-version }}
  uses: actions/setup-node@v1
  with:
    node-version: ${{ matrix.node-version }}
- name: npm install, build, and test
  run: |
    npm i -g firebase-tools
    firebase login
    npm ci
    npm run build --if-present
    npm test
  env:
    CI: true

标签: node.jsfirebasegithubfirebase-cli

解决方案


您不必firebase login在 CI 系统上使用。您所要做的就是按照文档中的说明与任何 CI 系统集成。

将 CLI 与 CI 系统一起使用

Firebase CLI 需要浏览器来完成身份验证,但 CLI 与 CI 和其他无头环境完全兼容。

  1. 在带有浏览器的机器上,安装 Firebase CLI。

  2. 通过运行以下命令启动登录过程:

  3. firebase 登录:ci

  4. 访问提供的 URL,然后使用 Google 帐户登录。

  5. 打印一个新的刷新令牌。当前的 CLI 会话不会受到影响。

  6. 以安全但可访问的方式将输出令牌存储在 CI 系统中。

  7. 运行 firebase 命令时使用此令牌。您可以使用以下两个选项之一:

    • 将令牌存储为环境变量 FIREBASE_TOKEN。您的系统将自动使用该令牌。

    • 在 CI 系统中运行所有带有 --token 标志的 firebase 命令。令牌加载的优先顺序是标志、环境变量、所需的 Firebase 项目。


推荐阅读