Используйте Google Cloud Build для развертывания Firebase без маркера Firebase CI - PullRequest
0 голосов
/ 11 июня 2019

В моем 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

Я хочу знать, возможно ли добавить некоторые «специальные» разрешения в облачную сборку, чтобы разрешить развертывание без этого FIREBASE_TOKEN.

(все файлы в одном проекте)

1 Ответ

1 голос
/ 11 июня 2019

да, это возможно. Но есть пара вещей, которые нужно сделать

при условии, что ваша облачная сборка выглядит следующим образом

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"]

Вам нужно загрузить собственное firebase изображение с здесь , я полагаю, вы уже знакомы с этим, в противном случае, я написал в основном аналогичный пост о том, как сделать эту часть здесь все равно ...

После этого IAM, который вы запрашиваете, - Firebase Admin, вам необходимо присвоить его вашей ...@cloudbuild.gserviceaccount.com учетной записи.

Вуаля! вы можете проверить это как (используя SDK)

gcloud builds submit --config cloudbuild.yaml .

Конечно, укажите местоположение вашего файла.

Комментарий комментария : Я не большой поклонник этого подхода, я пробовал несколько раз, и всегда были некоторые проблемы с ним, но хорошо, поэтому мы назвали его opinionated comment :)

Удачи.

...