在GitLab CI上运行Firebase模拟器

时间:2019-06-11 21:16:10

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

我正在尝试在GitLab CI管道上测试Firestore的安全规则。我需要运行Firebase的仿真器才能完成该任务。

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

例如:

stages:
  - emulator
  - test

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

test:
  - stage: test
  script:
    - yarn test

由于GitLab正在服务test阶段,因此从未达到emulator阶段。因此,它永远不会完成。

1 个答案:

答案 0 :(得分:2)

您不应使用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