Tutorial: Crea una canalización que compile y pruebe tu aplicación para Android con AWS Device Farm - AWS CodePipeline

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 compile y pruebe tu aplicación para Android con AWS Device Farm

Puedes usarlo AWS CodePipeline para configurar un flujo de integración continuo en el que tu aplicación se compila y se prueba cada vez que se envía una confirmación. En este tutorial, se muestra cómo crear y configurar una canalización para compilar y probar tu aplicación de Android con el código fuente en un GitHub repositorio. La canalización detecta la llegada de una nueva GitHub confirmación y, a continuación, se utiliza CodeBuildpara compilar la aplicación y Device Farm para probarla.

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 las 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 Agregar una acción entre regiones en CodePipeline.

Puede probarlo con su aplicación Android actual y las definiciones de prueba, o usar la aplicación de muestra y las definiciones de prueba que proporciona Device Farm.

nota

Antes de empezar

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

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

  3. 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

  1. Agrega y confirma un archivo llamado buildspec.ymlraíz del código de tu aplicación y envíalo a tu repositorio. CodeBuild usa este archivo para ejecutar los comandos y acceder a los artefactos necesarios para compilar tu aplicación.

    version: 0.2 phases: build: commands: - chmod +x ./gradlew - ./gradlew assembleDebug artifacts: files: - './android/app/build/outputs/**/*.apk' discard-paths: yes
  2. (Opcional) Si usa Calabash o Appium para probar su aplicación, añada el archivo de definición de prueba al repositorio. Después podrá configurar CodeBuild para usar las definiciones con el fin de llevar a cabo el conjunto de pruebas.

    Si utiliza las pruebas de Device Farm incorporadas, puede omitir este paso.

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

    1. Inicie sesión AWS Management Console y abra la CodePipeline consola en https://console.aws.amazon.com/codepipeline/.

    2. Seleccione Create pipeline. En la página Step 1: Choose pipeline settings (Paso 1: Elegir configuración de canalización), en Pipeline name (Nombre de canalización), escriba el nombre de la canalización.

    3. En Tipo de canalización, elija V1 para los fines de este tutorial. También puede elegir V2; sin embargo, tenga en cuenta que los tipos de canalización difieren en cuanto a características y precio. Para obtener más información, consulte Tipos de canalización.

    4. 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 utilizas un rol de CodePipeline servicio que se creó antes de julio de 2018, tendrás que 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 Agregar permisos al rol de servicio de CodePipeline.

      { "Effect": "Allow", "Action": [ "devicefarm:ListProjects", "devicefarm:ListDevicePools", "devicefarm:GetRun", "devicefarm:GetUpload", "devicefarm:CreateUpload", "devicefarm:ScheduleRun" ], "Resource": "*" }
    5. En Advanced settings (Configuración avanzada), deje los valores predeterminados y elija Next (Siguiente).

    6. En la página Paso 2: Agregar la etapa de origen, en Proveedor de fuentes, elija GitHub.

    7. En Conexión, seleccione una conexión existente o cree una nueva. Para crear o gestionar una conexión para la acción GitHub de origen, consulteGitHub conexiones.

    8. En Repository (Repositorio), elija el repositorio de código fuente.

    9. En Branch (Ramificación), elija la ramificación que desea utilizar.

    10. Deje los valores predeterminados restantes para la acción de origen. Elija Siguiente.

  4. En Add build stage (Añadir etapa de compilación), añada una etapa de compilación:

    1. En Build provider (Proveedor de compilación), elija AWS CodeBuild. En el campo Region (Región) conserve el valor predeterminado de la región de la canalización.

    2. Elija Crear proyecto.

    3. En Project name (Nombre de proyecto), escriba un nombre para este proyecto de compilación.

    4. En Environment image (Imagen de entorno), elija Managed image (Imagen administrada). En Operating system (Sistema operativo), elija Ubuntu.

    5. En Runtime, elija Standard (Estándar). En Imagen, elija aws/codebuild/standard:5.0.

      CodeBuild usa esta imagen del sistema operativo, que tiene instalado Android Studio, para compilar tu aplicación.

    6. En Rol de servicio, elige tu rol de CodeBuild servicio actual o crea uno nuevo.

    7. En Build specifications (Especificaciones de compilación), elija Use a buildspec file (Usar un archivo buildspec).

    8. Selecciona Continuar a CodePipeline. Esto vuelve a la CodePipeline consola y crea un CodeBuild proyecto que utiliza el contenido del buildspec.yml repositorio para la configuración. El proyecto de compilación utiliza un rol de servicio para administrar los permisos del Servicio de AWS . Es posible que este paso tarde un par de minutos.

    9. Elija Siguiente.

  5. En la página Step 4: Add deploy stage (Paso 4: Añadir etapa de implementación), elija Skip deploy stage (Omitir etapa de implementación) y, a continuación, acepte el mensaje de advertencia eligiendo Skip (Omitir) una vez más. Elija Siguiente.

  6. En Step 5: Review (Paso 5: Revisar), seleccione Create pipeline (Crear canalización). Debe ver un diagrama que muestra las etapas de código fuente y de compilación.

  7. Añada una acción de prueba de Device Farm a su canalización:

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

    2. En la parte inferior del diagrama, seleccione + Add stage (Añadir etapa). En Nombre de la etapa, escriba un nombre; por ejemplo, Test.

    3. Elija + Add action group (Añadir grupo de acciones).

    4. En Nombre de la acción, escriba un nombre.

    5. 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.

    6. 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 BuildArtifact.

      En la AWS CodePipeline consola, puedes encontrar el nombre del artefacto de salida de cada etapa pasando el ratón por encima del 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.

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

    8. En DevicePoolArn, introduzca el ARN del grupo de dispositivos. Para obtener los ARN del grupo de dispositivos disponibles 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
    9. En AppType, ingresa Android.

      A continuación, se muestra una lista de valores válidos para AppType:

      • iOS

      • Android

      • Web

    10. 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 app-release.apk.

    11. En TestType, introduce tu tipo de prueba y, a continuación, en Prueba, introduce 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.

      A continuación, se muestra una lista de valores válidos para TestType:

      • APPIUM_JAVA_JUNIT

      • APPIUM_JAVA_TESTNG

      • APPIUM_NODE

      • APPIUM_RUBY

      • APPIUM_PYTHON

      • APPIUM_WEB_JAVA_JUNIT

      • APPIUM_WEB_JAVA_TESTNG

      • APPIUM_WEB_NODE

      • APPIUM_WEB_RUBY

      • APPIUM_WEB_PYTHON

      • BUILTIN_FUZZ

      • INSTRUMENTATION

      • XCTEST

      • XCTEST_UI

      nota

      No se admiten los nodos de entorno personalizados.

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

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

    14. Seleccione Guardar.

    15. 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.

    16. Para enviar los cambios y comenzar una compilación de canalización, seleccione Publicar modificación y, a continuación, Publicar.