

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Tutorial: Crea una canalización que pruebe tu aplicación para iOS con AWS Device Farm
<a name="tutorials-codebuild-devicefarm-S3"></a>

 Puede usarlo AWS CodePipeline para configurar fácilmente un flujo de integración continuo en el que su aplicación se pruebe cada vez que cambie el bucket de origen. En este tutorial se muestra cómo crear y configurar una canalización para probar su aplicación iOS compilada desde un bucket de S3. La canalización detecta la llegada de un cambio guardado a través de Amazon CloudWatch Events y, a continuación, utiliza [Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html) para probar la aplicación creada. 

**importante**  
Como parte de la creación de una canalización, se utilizará un depósito de artefactos de S3 proporcionado por el cliente CodePipeline para fabricar artefactos. (Es diferente del bucket que se usa para una acción de origen de S3). Si el depósito de artefactos de S3 está en una cuenta diferente a la de tu canalización, asegúrate de que el depósito de artefactos de S3 pertenezca a una Cuentas de AWS persona segura y fiable.

**importante**  
Muchas de las acciones que añades a la canalización en este procedimiento implican AWS recursos que debes crear antes de crear la canalización. AWS Los recursos para las acciones de origen siempre deben crearse en la misma AWS región en la que se creó la canalización. Por ejemplo, si creas tu canalización en la región EE.UU. Este (Ohio), tu CodeCommit repositorio debe estar en la región EE.UU. Este (Ohio).   
Puedes añadir acciones entre regiones al crear tu canalización. AWS los recursos para acciones entre regiones deben estar en la misma AWS región en la que planeas ejecutar la acción. Para obtener más información, consulte [Añadir una acción interregional en CodePipeline](actions-create-cross-region.md).

Puede probarlo con la [aplicación iOS de muestra](samples/s3-ios-test-1.zip) o usar la suya.

**Antes de empezar**

1. Inicia sesión en la AWS Device Farm consola y selecciona **Crear un proyecto nuevo**.

1. Elija el proyecto. En el navegador, copie la URL de su nuevo proyecto. La dirección URL contiene el ID del proyecto.

1. Copie y conserve este ID de proyecto. Lo usará al crear la canalización en CodePipeline.

   Aquí mostramos una URL de ejemplo para un proyecto. Para extraer el ID del proyecto, copie el valor detrás de `projects/`. En este ejemplo, el ID del proyecto es `eec4905f-98f8-40aa-9afc-4c1cfexample`.

   ```
   https://<region-URL>/devicefarm/home?region=us-west-2#/projects/eec4905f-98f8-40aa-9afc-4c1cfexample/runs
   ```

## Configure CodePipeline para usar sus pruebas de Device Farm (ejemplo de Amazon S3)
<a name="codepipeline-configure-tests-S3"></a>

1. Cree o utilice un bucket de S3 con el control de versiones habilitado. Puede seguir las instrucciones de [Paso 1: creación de un bucket de origen de S3 para la aplicación](tutorials-simple-s3.md#s3-create-s3-bucket) para crear un bucket de S3.

1. En la consola de Amazon S3 para su bucket, elija **Cargar** y siga las instrucciones para cargar el archivo .zip.

   La aplicación compilada de muestra debe estar empaquetada en un archivo .zip.

1. Para crear la canalización y añadir una etapa de código fuente, haga lo siguiente:

   1. Inicie sesión en Consola de administración de AWS y abra la CodePipeline consola en [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

   1. En la página **Bienvenido**, **Introducción** o **Canalizaciones**, elija **Crear canalización**.

   1. En la página **Paso 1: elección de la opción de creación**, en **Opciones de creación**, seleccione la opción **Crear una canalización personalizada**. Elija **Siguiente**.

   1. En la página **Paso 2: elegir la configuración de la canalización**, en **Nombre de la canalización**, escriba el nombre de la canalización.

   1. CodePipeline proporciona tuberías de tipo V1 y V2, que difieren en características y precio. El tipo V2 es el único tipo que puede elegir en la consola. Para obtener más información, consulte [Tipos de canalización](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html?icmpid=docs_acp_help_panel). Para obtener información sobre los precios de CodePipeline, consulte [Precios](https://aws.amazon.com/codepipeline/pricing/).

   1. En **Service role (Rol de servicio)**, deje la opción **New service role (Nuevo rol de servicio)** seleccionada y no haga ningún cambio en **Role name (Nombre de rol)**. También puede usar un rol de servicio que haya creado anteriormente.
**nota**  
Si usa un rol de CodePipeline servicio que se creó antes de julio de 2018, debe añadir permisos para Device Farm. Para ello, abra la consola de IAM, busque el rol y, a continuación, añada los siguientes permisos a la política del rol. Para obtener más información, consulte [Agrega permisos al rol de CodePipeline servicio](how-to-custom-role.md#how-to-update-role-new-services).  

      ```
      {
           "Effect": "Allow",
           "Action": [
              "devicefarm:ListProjects",
              "devicefarm:ListDevicePools",
              "devicefarm:GetRun",
              "devicefarm:GetUpload",
              "devicefarm:CreateUpload",
              "devicefarm:ScheduleRun"
           ],
           "Resource": "*"
      }
      ```

   1. En **Advanced settings (Configuración avanzada)**, deje los valores predeterminados y elija **Next (Siguiente)**.

   1. En la página **Paso 3: agregar la etapa de origen**, en **Proveedor de origen**, elija **Amazon S3**.

   1. En **Ubicación de Amazon S3**, escriba el bucket, como `my-storage-bucket` y la clave de objeto, como `s3-ios-test-1.zip` para su archivo .zip.

   1. Elija **Siguiente**.

1. En **Paso 4: agregación de la etapa de compilación**, cree una etapa de compilación de marcador de posición para su canalización. De este modo puede crear la canalización en el asistente. Después de usar el asistente para crear su canalización de dos etapas, no se necesita más esta etapa de compilación de marcador de posición. Una vez completada la canalización, se elimina esta segunda etapa y se añade la nueva etapa de prueba en el paso 5.

   

   1. En **Build provider (Proveedor de compilación)**, elija **Add Jenkins (Añadir Jenkins)**. Esta selección de compilación es un marcador de posición. No se utiliza.

   1. En **Provider name (Nombre del proveedor)**, escriba un nombre. El nombre es un marcador de posición. No se utiliza.

   1. En **Server URL (URL del servidor)**, escriba el texto. El texto es un marcador de posición. No se utiliza.

   1. En **Project name (Nombre del proyecto)**, escriba un nombre. El nombre es un marcador de posición. No se utiliza.

   1. Elija **Siguiente**.

   1. En **Paso 5: agregación de la etapa de prueba**, elija **Omitir la etapa de prueba** y, a continuación, acepte el mensaje de advertencia eligiendo **Omitir** una vez más. 

      Elija **Siguiente**.

   1. En la página **Paso 6: Añadir fase de despliegue**, seleccione **Omitir fase de despliegue** y, a continuación, acepte el mensaje de advertencia seleccionando **Omitir** de nuevo.

   1. En el **paso 7: Revisar**, selecciona **Crear canalización**. Debe ver un diagrama que muestra las etapas de código fuente y de compilación.  
![\[\]](http://docs.aws.amazon.com/es_es/codepipeline/latest/userguide/images/codepipeline-view-pipeline-S3.png)

1. Añada una acción de prueba de Device Farm a su canalización del siguiente modo:

   1. En la parte superior derecha, elija **Edit (Editar)**. 

   1. Elija **Edit stage (Editar etapa)**. Elija **Eliminar**. Esto elimina la etapa de marcador de posición ahora que ya no la necesita para la creación de canalizaciones.

   1. En la parte inferior del diagrama, seleccione **\$1 Add stage (Añadir etapa)**.

   1. En Stage name (Nombre de la etapa), escriba un nombre para esta, por ejemplo, Test, y, a continuación, elija **Add stage (Añadir etapa)**.

   1. Elija **\$1 Add action group (Añadir grupo de acciones)**.

   1. En **Nombre de acción**, introduce un nombre, como DeviceFarmTest.

   1. En **Proveedor de la acción**, elija **AWS Device Farm**. En el campo **Region (Región)** conserve el valor predeterminado de la región de la canalización.

   1. En **Input artifacts (Artefactos de entrada)**, elija el artefacto de entrada que coincida con el artefacto de salida de la etapa anterior a la de prueba, como `SourceArtifact`. 

      En la AWS CodePipeline consola, para encontrar el nombre del artefacto de salida de cada etapa, coloca el cursor sobre el icono de información del diagrama de canalización. Si tu proceso de procesamiento prueba tu aplicación directamente desde la etapa de **origen**, elige. **SourceArtifact** Si la canalización incluye una etapa de **compilación**, elige **BuildArtifact**.

   1. En **ProjectId**, elige tu ID de proyecto de Device Farm. Siga los pasos que se indican al principio de este tutorial para recuperar el ID del proyecto.

   1. En **DevicePoolArn**, introduzca el ARN del grupo de dispositivos. Para obtener el conjunto de dispositivos disponible ARNs para el proyecto, incluido el ARN de los principales dispositivos, utilice la AWS CLI para introducir el siguiente comando: 

      ```
      aws devicefarm list-device-pools --arn arn:aws:devicefarm:us-west-2:account_ID:project:project_ID
      ```

   1. En **AppType**, ingresa **iOS**.

      A continuación, se muestra una lista de valores válidos para **AppType**:
      + **iOS**
      + **Android**
      + **Web**

   1. En **App (Aplicación)**, escriba la ruta del paquete de la aplicación compilado. La ruta es relativa a la raíz del artefacto de entrada de la etapa de prueba. Típicamente, esta ruta es similar a `ios-test.ipa`.

   1. En **TestType**, introduzca el tipo de prueba y, a continuación, en **Prueba**, introduzca la ruta del archivo de definición de la prueba. La ruta es relativa a la raíz del artefacto de entrada de la prueba.

      Si utiliza una de las pruebas de Device Farm integradas, escriba el tipo de prueba que ha configurado en el proyecto de Device Farm, por ejemplo BUILTIN\$1FUZZ. En **FuzzEventCount**, introduzca un tiempo en milisegundos, como 6000. En **FuzzEventThrottle**, introduzca un tiempo en milisegundos, como 50.

      Si no utiliza una de las pruebas de Device Farm integradas, escriba el tipo de prueba y, en **Prueba**, escriba la ruta del archivo de definición de prueba. La ruta es relativa a la raíz del artefacto de entrada de la prueba. 

      A continuación, se muestra una lista de valores válidos para **TestType**:
      + **APPIUM\$1JAVA\$1JUNIT**
      + **APPIUM\$1JAVA\$1TESTNG**
      + **APPIUM\$1NODE**
      + **APPIUM\$1RUBY**
      + **APPIUM\$1PYTHON**
      + **APPIUM\$1WEB\$1JAVA\$1JUNIT**
      + **APPIUM\$1WEB\$1JAVA\$1TESTNG**
      + **APPIUM\$1WEB\$1NODE**
      + **APPIUM\$1WEB\$1RUBY**
      + **APPIUM\$1WEB\$1PYTHON**
      + **BUILTIN\$1FUZZ**
      + **INSTRUMENTATION**
      + **XCTEST**
      + **XCTEST\$1UI**
**nota**  
No se admiten los nodos de entorno personalizados.

   1. En los campos restantes, proporcione la configuración que sea adecuada para su prueba y tipo de aplicación.

   1. (Opcional) En **Advanced (Avanzado)**, proporcione información acerca de la configuración en la ejecución de prueba.

   1. Seleccione **Save**.

   1. En la etapa que está editando, elija **Done (Listo)**. En el panel de AWS CodePipeline , elija **Save (Guardar)** y, a continuación, elija **Save (Guardar)** cuando aparezca el mensaje de advertencia.

   1. Para enviar los cambios y comenzar una ejecución de la canalización, elija **Release change (Publicar modificación)** y, a continuación, **Release (Publicar)**.