【问题标题】:Can you serve firebase functions when doing CI with token?使用令牌进行 CI 时可以提供 firebase 功能吗?
【发布时间】:2018-08-23 00:17:32
【问题描述】:

我的目标是在我的 CI 流程中提供 firebase 功能(然后运行 ​​e2e 测试)。

所以在开发中我可以做到这一点,假设我已经登录:

firebase serve --only functions --port=9000 --project=<project_id>

但是,在 CI 中我没有登录,因此我尝试这样做:

firebase serve --only functions --port=9000 --project=<project_id> --token=<firebase-ci-token>

但这不起作用 - 应该不可能吗?

更新

我现在正在尝试运行:

export FIREBASE_TOKEN=<firebase-token>

然后

firebase serve --only functions --port=9000 --project=eddystone-test-e4cd3

但它给了我一些错误(在 firebase-debug.log 中):

TypeError: Cannot read property 'refresh_token' of undefined

【问题讨论】:

  • 根据these docs,所有命令确实应该带有--token 标志。它可能是一个错误,尽管我担心它很可能是一个 documentation 错误。您可以尝试将令牌放入FIREBASE_TOKEN 环境变量中吗?
  • 嗨@FrankvanPuffelen - 感谢您的建议。它给出了一个新的错误。也许我应该在 firebase 函数 github 上打开一个问题?
  • 这看起来像您的问题吗? github.com/firebase/firebase-tools/issues/364
  • 是的 - GOOGLE_APPLICATION_CREDENTIALS 的完整路径是当前的解决方法吗?

标签: firebase google-cloud-functions firebase-cli


【解决方案1】:

这是您可能需要的示例.gitlab-ci.yml。请注意,firebase login:ci 生成的令牌是在每个 firebase 命令上指定的:

deploy:functions:staging:
    stage: deploy_functions
    environment: staging
    only:
        - staging
    when: manual
    script:
        - cd $APP_PATH/functions
        - npm install
        - cd ..
        - echo $ENVIRONMENT_STAGING >> $APP_PATH/src/environments/environment.staging.ts
        - firebase use staging --token "$FIREBASE_CI_AUTH_TOKEN"
        - firebase functions:config:set dev.authkey="$FIREBASE_CONFIG_DEV_AUTHKEY" --token "$FIREBASE_CI_AUTH_TOKEN"
        - firebase deploy --only functions --token "$FIREBASE_CI_AUTH_TOKEN" -P <project>

【讨论】:

    猜你喜欢
    • 2019-06-04
    • 2020-11-28
    • 2021-02-13
    • 2013-01-15
    • 2018-10-09
    • 2017-07-03
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    相关资源
    最近更新 更多