firebase 从远程部署托管(google 存储)

firebase deploy hosting from remote (google storage)

我有一个单页应用程序,我想在不同的 gcp 项目中托管,即不同的 firebase 项目。

部署应该持续到我的 firebase 托管,我想分开持续构建和持续部署步骤,因此 我不想从我的本地机器部署到我所有的 firebase 项目都是手动的。

我的问题是:

当我不想从我的本地机器部署时,是否有关于部署到 firebase 托管项目的最佳实践?


以我天真的方式,我将设置以下内容:

我需要构建一个 zip 文件,其中包含所有静态 html 和 js 文件以及我上传到存储桶的 firebase.json 和 .firebaserc 文件。 使用这些文件,firebase CLI 工具能够执行 firebase deploy --only hosting:mytarget。 google 云构建器可以 运行 在 git 推送上执行此命令(例如来自 github.com),它知道我要将单页应用程序部署到的所有 gcp 项目...

然而,这需要大量工作,也许对此有更好的解决方案。 我试图将 gs:// link 直接放到 firebase.json hosting/public 部分,但是 firebase CLI 无法识别这个(它需要一个本地文件夹):-(

{
  "hosting": [
    {
      "target": "mySPAApp",
      "public" : "gs://mystorage-containing-files-for-hosting/",
      "rewrites": [
        {
          "source": "apps/myapp/**",
          "destination": "myapp/index.html"
      }]
    }
  ]
}

我的直觉告诉我必须有更简单的方法,甚至可以使用 gcloud CLI 将一堆文件部署到 firebase 托管。 在 firebase 内部,功能的实​​现应该与此类似,因为在 firebase 控制台中,用户可以简单地回滚到托管应用程序的先前版本,但是似乎没有关于此的文档。

好的,我发现有一个用于 firebase 托管的官方 REST API,使用起来有点麻烦。 https://firebase.google.com/docs/hosting/reference/rest/v1beta1/sites.versions/create 配置格式与firestore.json中正常提供的格式不同,需要在创建Release之前以状态机方式在Version中上传文件。

不过,我认为这不是一个可供选择的解决方案。