Firebase 测试实验室 CI 上传 apk

Firebase Test lab CI upload apks

在设置我的构建服务器以使用 Firebase 测试实验室进行浓缩咖啡测试时,我一直 运行 进入错误。

ERROR: (gcloud.beta.test.android.run) Permission denied while fetching the default results bucket 
(Error 403: Access Not Configured. Cloud Tool Results API has not been used in project CLOUD_PROJECT_ID before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/toolresults/overview?project=CLOUD_PROJECT_ID then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.).
Is billing enabled for project: [PROJECT_ID]?

当我在通过我自己的帐户登录的自己的机器上尝试时,运行下面的命令可以正常工作。

gcloud beta test android run \
  --type instrumentation \
  --app app-debug.apk \
  --test app-debug-androidTest.apk \
  --device-ids Nexus4,Nexus5 \
  --os-version-ids 18,21,25 \
  --locales en \
  --orientations portrait

在我的构建服务器上,我想使用服务帐户,但是当我执行命令时,出现了前面提到的错误。有谁知道设置它的正确方法是什么?除了 project editor 之外,服务帐户是否需要一些特殊角色?

在构建脚本中,我执行以下命令以在上传 APK 之前验证和设置项目

gcloud config set project PROJECT_ID
gcloud auth activate-service-account service-account@email.address --key-file ~/gcloud-service-key.json

终于想通了。如果您想为 Firebase 测试实验室使用服务帐户,您必须启用 Cloud Tool Results API,它只能通过 Google Cloud Console 而不是 Firebase 控制台启用。

此外,您可能在 CI/CD 服务器上使用它并使用服务帐户进行身份验证...不要像我那样做,不要使用 google 云平台服务帐号。相反,使用此处的 Firebase 服务帐户 json 密钥

https://console.firebase.google.com/u/0/project/YOUR_PROJECT_ID/settings/serviceaccounts/