node.js - 如何在构建服务器上使用“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
解决方案
您不必firebase login
在 CI 系统上使用。您所要做的就是按照文档中的说明与任何 CI 系统集成。
将 CLI 与 CI 系统一起使用
Firebase CLI 需要浏览器来完成身份验证,但 CLI 与 CI 和其他无头环境完全兼容。
在带有浏览器的机器上,安装 Firebase CLI。
通过运行以下命令启动登录过程:
firebase 登录:ci
访问提供的 URL,然后使用 Google 帐户登录。
打印一个新的刷新令牌。当前的 CLI 会话不会受到影响。
以安全但可访问的方式将输出令牌存储在 CI 系统中。
运行 firebase 命令时使用此令牌。您可以使用以下两个选项之一:
将令牌存储为环境变量 FIREBASE_TOKEN。您的系统将自动使用该令牌。
在 CI 系统中运行所有带有 --token 标志的 firebase 命令。令牌加载的优先顺序是标志、环境变量、所需的 Firebase 项目。
推荐阅读
- r - 强制转换引入的 NA - 混合向量
- ruby-on-rails - 升级 Rails 和 Ruby 版本后 ActionMailer 不工作。仅适用于终端
- python - python中关于范围的奇怪错误
- python - 如何调整 scipy 插值函数?
- rxjs - 如何从流 RxJS 中记住以前的值
- html - 名称中带有空格的Google字体,在HTML中引用的正确方法是什么?
- reactjs - React.js - 抽屉覆盖页面内容
- karaf - Karaf:你如何在 repos 中搜索 osgi.wiring.package (s)
- c# - NLog 如何为每个子类创建单独的日志文件?
- sql-server - SQL 查询,需要数小时才能完成执行