

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 將 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_tw/devicefarm/latest/developerguide/images/aws-device-farm-jenkins-plugin-continuous-integration-project-hello-world-app.png)


![\[Jenkins CI 後建置動作整合\]](http://docs.aws.amazon.com/zh_tw/devicefarm/latest/developerguide/images/aws-device-farm-jenkins-plugin-continuous-integration-post-build-actions.png)


外掛程式也可以在本機提取所有測試成品 (日誌、螢幕擷取畫面等)：

![\[Jenkins CI 測試成品整合\]](http://docs.aws.amazon.com/zh_tw/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 Device Farm 的 Jenkins CI 外掛程式建立 AWS Identity and Access Management 使用者](#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 Mobile SDK 1.10.5 或更新版本。如需安裝軟體開發套件的詳細資訊，請參閱 [AWS Mobile SDK](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 (可用外掛程式)** 對話方塊內搜尋外掛程式，或您可以從 Jenkins 內下載 `hpi` 檔案並安裝它。

### 從 Jenkins UI 內安裝
<a name="installing-jenkins-from-within-ui"></a>

1. 在 Jenkins UI 內尋找外掛程式，方法為選擇 **Manage Jenkins (管理 Jenkins)**、**Manage Plugins (管理外掛程式)**，然後選擇 **Available (可用)**。

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

1. 安裝 AWS Device Farm 外掛程式。

1. 確保外掛程式是由 `Jenkins` 使用者擁有。

1. 重新啟動 Jenkins。

### 下載外掛程式
<a name="installing-jenkins-manual-install"></a>

1. 直接從 https：//[http://updates.jenkins-ci.org/latest/aws-device-farm.hpi](http://updates.jenkins-ci.org/latest/aws-device-farm.hpi) 下載`hpi`檔案。

1. 確保外掛程式是由 `Jenkins` 使用者擁有。

1. 使用以下其中一個選項安裝外掛程式：
   + 選擇 **Manage Jenkins (管理 Jenkins)**、**Manage Plugins (管理外掛程式)**、**Advanced (進階)**，然後選擇 **Upload plugin (上傳外掛程式)** 來上傳外掛程式。
   + 將 `hpi` 檔案放在 Jenkins 外掛程式目錄 (通常為 `/var/lib/jenkins/plugins`) 中。

1. 重新啟動 Jenkins。

## 步驟 2：為 AWS Device Farm 的 Jenkins CI 外掛程式建立 AWS Identity and Access Management 使用者
<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. 在**建立您自己的政策**旁邊，選擇**選取**。

1. 針對 **Policy Name (政策名稱)**，輸入政策的名稱 (例如，**AWSDeviceFarmAccessPolicy**)。

1. 針對**描述**，輸入可協助您將此 IAM 使用者與 Jenkins 專案建立關聯的描述。

1. 針對 **Policy Document (政策文件)**，輸入下列聲明：

------
#### [ 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. 選擇 **Users** (使用者)。

1. 選擇您要為其指派存取政策的 IAM 使用者。

1. 在 **Permissions (許可)** 區域中，針對 **Managed Policies (受管政策)**，選擇 **Attach Policy (連接政策)**。

1. 選取您剛建立的政策 （例如，**AWSDeviceFarmAccessPolicy**)。

1. 選擇 **Attach Policy (連接政策)**。

## 步驟 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. 選擇**儲存**。