firebase - 在 GitLab CI 上运行 Firebase 模拟器

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

我正在尝试在我的 GitLab CI 管道上测试 Firestore 的安全规则。我需要运行 Firebase 的模拟器来实现这一点。

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

例如:

stages:
  - emulator
  - test

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

test:
  - stage: test
  script:
    - yarn test
test由于 GitLab 正在为 emulator 提供服务,因此从未达到阶段阶段。因此,它永远不会结束。

最佳答案

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

关于firebase - 在 GitLab CI 上运行 Firebase 模拟器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56551767/

相关文章:

firebase - Firebase 和 Firestore 的 Multi-Tenancy 设置是否可行?

firebase - Firestore Cloud Function - 如何从 url 读取参数

javascript - 为什么使用电子邮件和密码创建用户会导致 502 Bad Gateway?

javascript - 为什么没有定义snap.data().id?

ios - SDWebImageOptions.refreshCached 不刷新缓存

javascript - Firebase javascript 身份验证 - 错误 : "Uncaught ReferenceError: firebase is not defined"

ios - 如何将Apple应用内购买的收据保存在数据库中?

git - AzureDevOps YAML管道存储库资源 `ref`回退

heroku - 在不使用heroku docker插件的情况下将docker部署到heroku

kubernetes - Helm 升级不会拉新容器