您是否有任何资源解释如何使用GitLab管道使用Firebase测试实验室?

时间:2017-06-15 14:56:46

标签: android docker gitlab-ci fastlane firebase-test-lab

我希望在Firebase测试实验室中使用espresso运行我的仪器测试,每次提交到GitLab中的分支。我已经使用Docker和Fastlane构建,部署和发布应用程序,但我在谷歌上找不到任何将测试实验室与这些工具集成的东西。您是否知道我可以使用GitLab的CI系统来运行仪器测试?

3 个答案:

答案 0 :(得分:2)

我们最近与Google Firebase合作,将此功能添加到Buddybuild。基本上,如果您使用应用程序,我们将使用FTL在真实设备上运行您的仪器测试。可以在此处找到更多信息:https://www.buddybuild.com/blog/running-android-ui-tests-on-physical-devices

很高兴回答您的任何进一步问题!

答案 1 :(得分:1)

可以使用gcloud从CI系统调用测试实验室。有关如何为JenkinsCircle CI执行此操作的说明。

测试实验室用户还有一个Slack通道。通过https://firebase.community加入并找到#test-lab频道。其中一些用户已成功将测试实验室连接到他们的CI系统。

答案 2 :(得分:0)

过了一段时间并获得了更多Docker的经验,我找到了如何在容器中安装和设置带有服务帐户的gcloud。命令在google's gcloud image's Dockerfile中。我只是将它们复制到我的Dockerfile中,因为我不想使用它们的图像,但我的gcloud CLI。

gcloud's documentation之后,我可以构建使用服务帐户登录而无需用户交互的命令。唯一需要的是将keyfile.json复制到容器中。

gcloud auth activate-service-account $GOOGLE_AUTH_EMAIL --key-file /path-to/keyfile.json --project $GOOGLE_PROJECT_ID

最后,这是我添加到原始Dockerfile的部分:

ENV GOOGLE_PROJECT_ID "yetanothertest-91d46"
ENV GOOGLE_AUTH_EMAIL "docker@yetanothertest91d46.iam.gserviceaccount.com"
ENV GOOGLE_KEY "keyfile.json"

ADD keyfile.json /home

RUN apt-get update && apt-get install -qqy \
curl gcc python-dev python-setuptools apt-transport-https lsb-release  && \
easy_install -U pip && \
pip install -U crcmod

RUN export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \
echo "deb https://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" > /etc/apt/sources.list.d/google-cloud-sdk.list

RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

RUN apt-get update && apt-get install -y google-cloud-sdk

RUN apt-get -y remove gcc python-dev python-setuptools

RUN rm -rf /var/lib/apt/lists/*

RUN gcloud config set core/disable_usage_reporting true && \
gcloud config set component_manager/disable_update_check true

RUN gcloud auth activate-service-account $GOOGLE_AUTH_EMAIL --key-file /home/keyfile.json --project $GOOGLE_PROJECT_ID

剩下要做的是在Fastlane中添加gcloud命令(因为它用于运行所有测试/构建/部署任务),以便将apks和设备一起发送到firebase用于测试。