【问题标题】:Running Firebase Emulator on GitLab CI在 GitLab CI 上运行 Firebase 模拟器
【发布时间】:2019-06-11 21:16:10
【问题描述】:

我正在尝试在我的 GitLab CI 管道上测试 Firestore 的安全规则。我需要运行 Firebase 的模拟器来完成。

但是,Firebase 模拟器基本上开始提供“假后端”。那么,我怎样才能使该作业与其他作业并行运行?

例如:

stages:
  - emulator
  - test

emulator:
  - stage: emulator
  script:
    - firebase serve --only firestore

test:
  - stage: test
  script:
    - yarn test

由于 GitLab 服务于 emulator 阶段,因此永远不会到达 test 阶段。因此,它永远不会结束。

【问题讨论】:

    标签: firebase google-cloud-firestore continuous-integration gitlab firebase-tools


    【解决方案1】:

    您不应使用 2 个阶段。请记住,每个阶段都是从某个地方开始的完全独立的“计算机”。因此,一个阶段默认情况下不能与另一个阶段交互。 舞台的script 部分实际上是一个shell 脚本。因此,如果您想尝试一切是否正常,请创建一个 shell 脚本并执行它。

    这就是我所做的。请记住,我没有使用您的特定设置对其进行测试

    stages:
      - test
    
    
    test:
      - stage: test
      script:
         - yarn compile
         - yarn firebase setup:emulators:firestore
         - yarn firebase emulators:exec -P dev1 --only firestore "yarn test --exit"
    
    

    要在CI 系统上使用模拟器进行测试,最好添加一个“启动”脚本。在这种情况下,我将添加测试 yarn test --exit

    【讨论】:

    • [Firebaser here] 这是正确的答案,这正是 emulators:exec 的用途。仅供参考,您不再需要运行 setup:emulators:firestore,我们会在最新版本的 Firebase CLI 中自动下载缺少的模拟器。
    猜你喜欢
    • 2020-06-15
    • 1970-01-01
    • 2017-04-01
    • 2021-11-14
    • 2014-07-07
    • 2021-06-26
    • 2020-10-27
    • 2020-09-15
    • 1970-01-01
    相关资源
    最近更新 更多