

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将 Device Farm 与 Jenkins CI 服务器集成
<a name="continuous-integration-jenkins-plugin"></a>

Jenkins CI 插件从您自己的 Jenkins 持续集成（CI）服务器提供 AWS Device Farm 功能。有关更多信息，请参阅 [Jenkins (软件)](https://en.wikipedia.org/wiki/Jenkins_%28software%29)。

**注意**  
要下载 Jenkins 插件，请转至[GitHub](https://github.com/awslabs/aws-device-farm-jenkins-plugin)并按照中的说明进行操作。[步骤 1：为 AWS Device Farm 安装 Jenkins CI 插件安装 Jenkins CI 插件](#jenkins-ci-installing-the-plugin)

本节包含设置 Jenkins CI 插件并与 AWS Device Farm 一起使用的一系列过程。

下图显示 Jenkins CI 插件的功能。

![\[与 Jenkins CI Hello World 应用程序集成\]](http://docs.aws.amazon.com/zh_cn/devicefarm/latest/developerguide/images/aws-device-farm-jenkins-plugin-continuous-integration-project-hello-world-app.png)


![\[与 Jenkins CI 构建后操作集成\]](http://docs.aws.amazon.com/zh_cn/devicefarm/latest/developerguide/images/aws-device-farm-jenkins-plugin-continuous-integration-post-build-actions.png)


此插件还可在本地下拉所有测试项目（日志、屏幕截图等）：

![\[与 Jenkins CI 测试项目集成\]](http://docs.aws.amazon.com/zh_cn/devicefarm/latest/developerguide/images/aws-device-farm-jenkins-plugin-continuous-integration-test-artifacts.png)


**Topics**
+ [依赖项](#jenkins-plugin-dependencies)
+ [步骤 1：为 AWS Device Farm 安装 Jenkins CI 插件](#jenkins-ci-installing-the-plugin)
+ [第 2 步：为适用于 AWS De AWS Identity and Access Management vice Farm 的 Jenkins CI 插件创建用户](#jenkins-ci-set-up-iam-user)
+ [步骤 3：在 AWS Device Farm 中首次配置 Jenkins CI 插件](#jenkins-ci-first-time-configuration-instructions)
+ [步骤 4：在 Jenkins 任务中使用插件](#jenkins-ci-using-plugin-jenkins-job)

## 依赖项
<a name="jenkins-plugin-dependencies"></a>

Jenkins CI 插件需要 AWS 移动 SDK 1.10.5 或更高版本。有关更多信息以及若要安装开发工具包，请参阅 [AWS 移动开发工具包](https://aws.amazon.com/mobile/sdk/)。

## 步骤 1：为 AWS Device Farm 安装 Jenkins CI 插件
<a name="jenkins-ci-installing-the-plugin"></a>

有两个选项可用于为 AWS Device Farm 安装 Jenkins 持续集成（CI）插件。您可以从 Jenkins Web UI 的 **Available Plugins (可用插件)** 对话框中搜索插件，也可以下载 `hpi` 文件并从 Jenkins 中安装。

### 从 Jenkins UI 中安装
<a name="installing-jenkins-from-within-ui"></a>

1. 通过依次选择 **Manage Jenkins (管理 Jenkins)**、**Manage Plugins (管理插件)** 和 **Available (可用)**，可在 Jenkins UI 中查找插件。

1. 搜索 **aws-device-farm**。

1. 安装 AWS Device Farm 插件。

1. 确保该插件归 `Jenkins` 用户所有。

1. 重启 Jenkins。

### 下载插件
<a name="installing-jenkins-manual-install"></a>

1. 直接从 [http://updates.jenkins-ci 下载`hpi`文件。 org/latest/aws-device-farm.hpi](http://updates.jenkins-ci.org/latest/aws-device-farm.hpi)。

1. 确保该插件归 `Jenkins` 用户所有。

1. 使用以下选项之一安装插件：
   + 通过依次选择 **Manage Jenkins (管理 Jenkins)**、**Manage Plugins (管理插件)**、**Advanced (高级)** 和 **Upload plugin (上传插件)** 来上传插件。
   + 将 `hpi` 文件置于 Jenkins 插件目录 (通常为 `/var/lib/jenkins/plugins`) 中。

1. 重启 Jenkins。

## 第 2 步：为适用于 AWS De AWS Identity and Access Management vice Farm 的 Jenkins CI 插件创建用户
<a name="jenkins-ci-set-up-iam-user"></a>

我们建议您不要使用 AWS 根账户来访问 Device Farm。相反，请在您的 AWS 账户中创建一个新 AWS Identity and Access Management (IAM) 用户（或使用现有的 IAM 用户），然后使用该 IAM 用户访问 Device Farm。

要创建新的 IAM 用户，请参阅[创建 IAM 用户（AWS 管理控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_SettingUpUser.html#Using_CreateUser_console)。确保为每个用户生成访问密钥并下载或保存用户安全凭证。您稍后将需要凭证。

### 为 IAM 用户提供访问 Device Farm 的权限。
<a name="jenkins-ci-setting-up-permissions"></a>

要为 IAM 用户提供访问 Device Farm 的权限，请在 IAM 中创建新的访问策略，然后将此访问策略分配给 IAM 用户，如下所示。

**注意**  
用于完成以下步骤的 AWS 根账户或 IAM 用户必须有权创建以下 IAM 策略并将其附加到 IAM 用户。有关更多信息，请参阅[使用策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_manage.html)

**在 IAM 中创建访问策略**

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 选择**策略**。

1. 选择**创建策略**。（如果 **Get Started** 按钮出现，选择此按钮，然后选择 **Create Policy**。）

1. 在 **Create Your Own Policy** 旁，选择 **Select**。

1. 对于**策略名称**，键入策略的名称（例如 **AWSDeviceFarmAccessPolicy**）。

1. 对于**说明**，键入说明以帮助您将此 IAM 用户与您的 Jenkins 项目相关联。

1. 为**策略文档**键入以下声明：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "DeviceFarmAll",
               "Effect": "Allow",
               "Action": [ "devicefarm:*" ],
               "Resource": [ "*" ]
           }
       ]
   }
   ```

------

1. 选择**创建策略**。

**将访问策略分配给 IAM 用户**

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 选择**用户**。

1. 选择将要向其分配访问策略的 IAM 用户。

1. 在**权限**区域中，为**管理的策略**选择**附加策略**。

1. 选中刚创建的策略（例如 **AWSDeviceFarmAccessPolicy**）。

1. 选择**附加策略**。

## 步骤 3：在 AWS Device Farm 中首次配置 Jenkins CI 插件
<a name="jenkins-ci-first-time-configuration-instructions"></a>

首次运行 Jenkins 服务器时，您将需要按如下所示配置系统。

**注意**  
 如果您要使用[设备槽](how-to-purchase-device-slots.md)，请将其启用，设备槽功能默认情况下处于禁用状态。

1. 登录到您的 Jenkins Web 用户界面。

1. 在屏幕左侧，选择 **Manage Jenkins (管理 Jenkins)**。

1. 选择 **Configure System (配置系统)**。

1. 向下滚动到 **AWS Device Farm** 标题。

1. 从 [为您的 Jenkins CI 插件创建 IAM 用户](#jenkins-ci-set-up-iam-user) 复制您的安全凭证，并将您的访问密钥 ID 和私有访问密钥粘贴到其各自的框中。

1. 选择**保存**。

## 步骤 4：在 Jenkins 任务中使用插件
<a name="jenkins-ci-using-plugin-jenkins-job"></a>

安装 Jenkins 插件后，请按照以下说明在 Jenkins 任务中使用该插件。

1. 登录到您的 Jenkins Web UI。

1. 单击要编辑的任务。

1. 在屏幕左侧，选择 **Configure (配置)**。

1. 向下滚动至 **Post-build Actions (构建后操作)** 标题。

1. 单击**添加构建后操作**并选择**在 AWS Device Farm 上运行测试**。

1. 选择要使用的项目。

1. 选择要使用的设备池。

1. 选择是否想将测试项目 (如日志和屏幕截图) 存档在本地。

1. 在 **Application (应用程序)** 中，填写已编译的应用程序的路径。

1. 选择您想运行的测试并填写所有必填字段。

1. 选择**保存**。