使用 Google Cloud Build 在没有 Firebase CI 令牌的情况下部署 Firebase
Use Google Cloud Build to deploy Firebase without Firebase CI token
在我的 package.json
中有这一行:
{
"deploy:ci": firebase deploy --force --only functions --token \"$SECRET\"
}
还有我的 cloudbuild.yaml
:
steps:
- name: "gcr.io/cloud-builders/docker"
args: ["build", "--tag", "gcr.io/$PROJECT_ID/functions", "."]
- name: "gcr.io/$PROJECT_ID/functions"
args: ["yarn", "deploy:ci"]
secretEnv: ["FIREBASE_TOKEN"]
secrets:
- kmsKeyName: projects/myproject/locations/global/keyRings/enviroment/cryptoKeys/firebase
secretEnv:
FIREBASE_TOKEN: VERY_LONG_UNGLY_AND_BORING_BASE64_STRING
我想知道是否可以向 cloudbuild 添加一些 "special" 权限,以便在没有此 FIREBASE_TOKEN
.
的情况下进行部署
(所有文件都在同一个项目中)
是的,这是可能的。但是您需要做一些事情
假设您的云构建如下所示
steps:
- name: "gcr.io/cloud-builders/npm"
args: ["install"]
- name: "gcr.io/cloud-builders/npm"
args: ["run", "build]
- name: "gcr.io/cloud-builders/firebase"
args: ["deploy"]
无论如何,您需要从 here, I assume you are already familiar with this, otherwise, I wrote basically a similar post about how to do this part here 上传自己的 firebase
图片...
之后,您要求的 IAM 是 Firebase Admin
,您需要将其分配给您的 ...@cloudbuild.gserviceaccount.com
帐户。
瞧!你可以像这样测试它(使用 sdk)
gcloud builds submit --config cloudbuild.yaml .
当然要指向你的文件位置。
有主见的评论:我不是这种方法的忠实拥护者,我尝试了几次,但总有一些问题,但是,这就是我们打电话的原因它 opinionated comment
:)
祝你好运。
在我的 package.json
中有这一行:
{
"deploy:ci": firebase deploy --force --only functions --token \"$SECRET\"
}
还有我的 cloudbuild.yaml
:
steps:
- name: "gcr.io/cloud-builders/docker"
args: ["build", "--tag", "gcr.io/$PROJECT_ID/functions", "."]
- name: "gcr.io/$PROJECT_ID/functions"
args: ["yarn", "deploy:ci"]
secretEnv: ["FIREBASE_TOKEN"]
secrets:
- kmsKeyName: projects/myproject/locations/global/keyRings/enviroment/cryptoKeys/firebase
secretEnv:
FIREBASE_TOKEN: VERY_LONG_UNGLY_AND_BORING_BASE64_STRING
我想知道是否可以向 cloudbuild 添加一些 "special" 权限,以便在没有此 FIREBASE_TOKEN
.
(所有文件都在同一个项目中)
是的,这是可能的。但是您需要做一些事情
假设您的云构建如下所示
steps:
- name: "gcr.io/cloud-builders/npm"
args: ["install"]
- name: "gcr.io/cloud-builders/npm"
args: ["run", "build]
- name: "gcr.io/cloud-builders/firebase"
args: ["deploy"]
无论如何,您需要从 here, I assume you are already familiar with this, otherwise, I wrote basically a similar post about how to do this part here 上传自己的 firebase
图片...
之后,您要求的 IAM 是 Firebase Admin
,您需要将其分配给您的 ...@cloudbuild.gserviceaccount.com
帐户。
瞧!你可以像这样测试它(使用 sdk)
gcloud builds submit --config cloudbuild.yaml .
当然要指向你的文件位置。
有主见的评论:我不是这种方法的忠实拥护者,我尝试了几次,但总有一些问题,但是,这就是我们打电话的原因它 opinionated comment
:)
祝你好运。