在 GitLab CI 上运行 Firebase 模拟器

2024-01-23

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

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

例如:

stages:
  - emulator
  - test

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

test:
  - stage: test
  script:
    - yarn test

The 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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 GitLab CI 上运行 Firebase 模拟器 的相关文章

随机推荐

  • 无法使用 Desktop Docker 设置通过节点端口访问 Kubernetes 服务

    我在 Windows 10 上使用 Docker Desktop 我生成 kubernetes NodePort 服务以从客户端 Web 浏览器访问 http 10 110 201 24 30008 hello praveen http 1
  • 停留在基本的 Linq to XML 查询上

    我正在尝试从 namecheap 沙箱 api 中提取信息 但无法弄清楚为什么我的 linq 查询不起作用 这是一个示例响应 XML
  • php 中的文件锁定

    我有一个新人 隔壁的少年 编写了一些 php 代码来跟踪我网站上的一些使用情况 我不熟悉 php 所以我想问一些关于并发文件访问的问题 我的本机应用程序 在 Windows 上 偶尔会通过点击包含我的 php 脚本的 URL 来将一些数据记
  • 从地图外部将对象拖放到 Google 地图中:标记未放置在正确的纬度/经度处

    我想从地图外部将一个对象拖到我的 Google 地图 API V3 中 经过一番研究 我发现这个非常有帮助的帖子 https stackoverflow com a 5921814 1866810我尝试将其适应我的项目 主要思想是在地图上拖
  • MVC路由问题

    我想按如下方式设置路由 Profile Edit gt 编辑操作的路由 Profile Add gt 添加操作的路由 Profile username gt 使用参数 username 路由到 Index 操作 因为操作用户名不存在 所以我
  • EventBus 和 RxJava 有什么区别? [复制]

    这个问题在这里已经有答案了 我对 android 中的 EventBus 和 RxJava 之间的区别感到困惑 我需要实现其中之一来解决我的问题 即在完成某些更改后通知某些组件 以便它们可以更新其状态 另外 我读到 EventsBus 已因
  • Java 禁用 dpi 感知不起作用

    我正在尝试运行 Java 应用程序 Dsun java2d dpiaware false争论但什么也没发生 我希望有一个模糊的用户界面 但对于正常大小的图标和字体 这个标志似乎不起作用 我在 Windows 8 1 上使用 JDK 1 8
  • 从 pySpark SQL 写入远程 mysql 数据库 (JDBC) 获取新行 id

    我正在使用 pyspark sql 使用 JDBC 在远程 mysql 数据库中创建行 我有两张桌子 parent table id value and child table id value parent id 所以每一行parent
  • 如何关闭颜色并删除 Git 日志中的时间?

    正如标题所说 如何关闭颜色并去除时间 因为我需要将输出复制到pbcopy 但颜色模式会使输出包含特殊字符 我已将以下内容添加到 gitconfig文件 以删除大部分颜色 color ui false branch false diff fa
  • 为什么 ConcurrentSkipListSet 升序迭代器比降序迭代器“更快”?

    我在 ConcurrentSkipListSet 上使用 DescendingIterator 方法 我刚刚检查了文档并注意到以下评论 升序视图及其迭代器比降序视图及其迭代器更快 See https docs oracle com java
  • 如何通用地创建从泛型类型继承的存储库?

    我目前正在尝试实施存储库模式在我的 DbContext 之上 问题是 我最终遇到了一种情况 我必须将多个存储库注入到一个UnitOfWork构造函数 像这样 public class UnitOfWork private DbContext
  • 我可以找到最后一次值更改的时间戳吗

    给定一个时间序列 是否可以找到最后一个值变化的时间戳 例如 一个 cron 作业每晚运行 它首先运行 rsync 作业 然后计算目标目录的大小 实际的指标值并不是那么重要 但我想验证它实际上每天晚上都会发生变化 是否可以创建一个返回标量值以
  • 反转多对多字典>

    实际上我之前的问题 https stackoverflow com questions 1324912 convert dictionaryint enumerable to dictionaryint enumerable inverti
  • 使用 Linux、iOS、蓝牙、Bonjour、GameKit 进行 PAN —— 可能吗?

    所以我读了关于这个问题的不同看法 我想我读了所有相关的问题 我可以在 PAN 中连接吗 我可以编写一个应用程序来通过蓝牙连接我的 Linux 机器和我的 iOS 设备吗 使用或不使用 Bonjour 或 GameKit 几个必备条件 iOS
  • 通用数组创建错误

    我正在尝试创建一个具有通用顶点和邻接列表的 Graph 类 并且在以下代码的第 10 行处收到通用数组创建错误 早些时候我在第 11 行遇到了同样的错误 但它通过强制转换解决了 但这个错误仍然存 在 代码中有什么问题 import java
  • 为什么这段 Python 代码运行了两次? [复制]

    这个问题在这里已经有答案了 我有一个 Python 脚本 只有这两行 import requests print len dir requests 它打印 12 48 当我打印实际列表时dir requests 我明白了 author bu
  • 我如何识别通用类?

    我怎样才能识别 NET2 一个泛型类 Class A Of T End Class not work If TypeOf myObject Is A Then 如果用 c 的话会是这样的 public class A
  • Hive Map join:内存不足异常

    我正在尝试使用一个大表 10G 和一个小表 230 MB 来执行地图端 对于较小的情况 在连接关键列后 我将使用所有列来生成输出记录 我使用了以下设置 设置 hive auto convert join true 设置 hive mapjo
  • java.security.AccessControlException:访问被拒绝(java.io.FilePermission /usr/share/java/jsp-api-2.0.jar 读取)

    我正在尝试将应用程序部署到 Debian Lenny 上的 Tomcat 5 5 我收到以下异常 java security AccessControlException access denied java io FilePermissi
  • 在 GitLab CI 上运行 Firebase 模拟器

    我正在尝试在我的 GitLab CI 管道上测试 Firestore 的安全规则 我需要运行 Firebase 的模拟器来完成此任务 然而 Firebase 模拟器基本上开始提供 假后端 服务 那么 我如何才能与其他作业并行运行该作业呢 例