gcloud Firebase Android测试:无法访问测试环境目录:ResponseError 403:未获得项目授权

hb0*_*hb0 4 android jenkins firebase gcloud firebase-test-lab

我做了什么:

  • 我通过以下指南在jenkins Docker容器上设置了gcloud:https://firebase.google.com/docs/test-lab/continuous

我要执行的是:

gcloud firebase test android run --app ./app/build/outputs/apk/app-debug.apk
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

ERROR: (gcloud.firebase.test.android.run) Unable to access the test environment catalog: ResponseError 403: Not authorized for project <project-id>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我尝试使用所有服务帐户规则在IAM下添加服务帐户,但这无济于事。

是否可以专门为服务帐户启用这些API?我只对整个项目和gmail帐户这样做:启用必需的API。使用服务帐户登录后:“在Google Developers Console API库页面中,启用Google Cloud Testing API和Cloud Tool Results API。要启用这些API,请在控制台顶部的搜索框中输入以下API名称,然后在概述页面上针对该API单击启用API。”

到目前为止,我的步骤非常详细:

docker exec -it container bash

export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)"
echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-get update && sudo apt-get install google-cloud-sdk
gcloud init

# only if this service account does not already exist:
# gcloud iam service-accounts create continuous-integration

gcloud iam service-accounts keys create $JENKINS_HOME/gce-continuous-integration-key.json --iam-account=continuous-integration@<project-id>.iam.gserviceaccount.com

gcloud auth activate-service-account continuous-integration@<project-id>.iam.gserviceaccount.com --key-file=$JENKINS_HOME/gce-continuous-integration-key.json

gcloud auth login continuous-integration@<project-id>.iam.gserviceaccount.com

jenkins@VM:/$ gcloud config list
# returns:
[compute]
region = europe-west3
zone = europe-west3-c
[core]
account = continuous-integration@<project-id>.iam.gserviceaccount.com
disable_usage_reporting = True
project = <project-id>
Your active configuration is: [default]
Run Code Online (Sandbox Code Playgroud)

小智 7

尝试在IAM页面中为服务帐户授予Project-> Editor特权。要运行Firebase Test Lab测试,授权需要允许gcloud创建几种类型的Cloud资源(测试矩阵,工具结果),以及将中间和最终测试结果文件写入项目的Cloud Storage存储桶。

  • 在 IAM 主页 (/iam-admin/iam) 上添加编辑器角色确实有效,谢谢!但我认为值得一提的是,IAM 菜单有一个服务帐户子菜单,您还可以在其中添加角色,例如编辑器。但是,将角色添加到您的服务帐户不会执行任何操作,因此请注意(至少测试命令不起作用)! (2认同)