我正在尝试在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
阶段。因此,它永远不会完成。
答案 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