我有一个单页面应用程序,我想在不同的gcp项目(即不同的firebase项目)中托管。
应该对我的Firebase托管进行连续部署,我想将“持续构建”和“持续部署”步骤分开,因此我不想手动从本地计算机进行部署
当我不想从本地计算机进行部署时,是否有最佳实践来部署到Firebase托管项目?
以天真的方式,我将设置以下内容:
我需要构建一个zip文件,其中包含所有静态html和js文件以及我上传到存储桶的firebase.json和.firebaserc文件。
使用这些文件,firebase
CLI工具可以执行firebase deploy --only hosting:mytarget
。谷歌云构建器可以在git push上运行此命令(例如,来自github.com),该信息知道我要将单页应用程序部署到的所有gcp项目...
但是,这需要大量的工作,也许有更好的解决方案。 我试图直接将gs://链接放置到firebase.json托管/公共部分,但是firebase CLI无法识别此链接(它需要本地文件夹):-(
{
"hosting": [
{
"target": "mySPAApp",
"public" : "gs://mystorage-containing-files-for-hosting/",
"rewrites": [
{
"source": "apps/myapp/**",
"destination": "myapp/index.html"
}]
}
]
}
我的直觉告诉我们,必须有一种更简单的方法,即使使用gcloud
CLI,该CLI仅将一堆文件部署到Firebase托管中。
在firebase内部,应该以类似的方式实现功能,因为在firebase控制台中,用户可以简单地回滚到托管应用程序的先前版本,但是似乎没有关于此的文档。
答案 0 :(得分:0)
好吧,我发现有一个用于Firebase托管的官方REST API,使用起来有点麻烦。 https://firebase.google.com/docs/hosting/reference/rest/v1beta1/sites.versions/create 配置的格式不同于firestore.json中通常提供的格式,并且文件需要在创建发行版之前以状态机方式在Version中上载。
还是,我认为这不是一个选择的解决方案。