Creación de interconexiones Tekton para Mobile Foundation

improve this page | report issue

Mobile Foundation in Cloud Pak for Apps está empaquetado con las interconexiones Tekton para automatizar las tareas DevOps comunes relacionadas con Mobile Foundation.

Los pasos para desplegar Mobile Foundation on OpenShift Container Platform (OCP) son los mismos independientemente de cómo haya obtenido la titularidad de OCP.

Requisitos previos

A continuación se muestran los requisitos previos antes de iniciar el proceso de instalación de la instancia de Mobile Foundation Operator.

Interconexiones Tekton

Las siguientes interconexiones Tekton están disponibles con Mobile Foundation on Cloud Pak for Apps.

  1. Mobile App Configuration Pipeline (mobile-app-registration-pipeline)
  2. Mobile App Build Pipeline for Android (mobile-app-build-android-pipeline)
  3. Mobile App Build Pipeline for iOS (mobile-app-build-ios-pipeline)
  4. Mobile App Distribution Pipeline (application-center-deploy)
  5. Mobile App Test Pipeline for Android (mobile-app-test-android-pipeline)

Pasos para ejecutar las interconexiones

  • Descargue el proyecto PPA for Mobile Foundation.
  • Extraiga el archivo IBM-MobileFoundation-Openshift-Pak-<version>.tar.gz.
  • Utilice cd para ir a la ubicación de la carpeta extraída
  • Inicie sesión en la instancia de Cloud Pak For Apps utilizando el mandato siguiente.
    oc login --token=<señal_acceso> --server=<instancia_servicio>
    

NOTA: Asegúrese de que despliega las interconexiones en el espacio de nombres/proyecto predeterminado. Es posible que las interconexiones no se ejecuten en otros espacios de nombres debido a problemas.

Mobile App Configuration Pipeline

Ejecute el siguiente mandato.

oc apply -f pipeline/mobile-app-registration -n <projectname>

Se genera la salida siguiente.

pipelineresource.tekton.dev/mobile-app-registration-git-resource created
pipeline.tekton.dev/mobile-app-registration-pipeline created
task.tekton.dev/mobile-app-registration-task created

Mobile App Build Pipeline for Android

Ejecute el mandato siguiente para desplegar la interconexión

oc apply -f pipeline/mobile-app-build-android -n <projectname>

Se genera la salida siguiente.

pipelineresource.tekton.dev/mobile-app-build-android-git-sresource created
pipeline.tekton.dev/mobile-app-build-android-pipeline created
task.tekton.dev/mobile-app-build-android-task created

Mobile App Build Pipeline for iOS

Requisitos previos

Necesita tener una configuración de Xcode Server en una máquina Mac accesible públicamente. Consulte la sección Configuración del servidor Xcode para crear aplicaciones iOS.

Ejecute el mandato siguiente cuando haya cubierto el requisito previo.

oc apply -f pipeline/mobile-app-build-ios -n <projectname>

Se genera la salida siguiente.

pipeline.tekton.dev/mobile-app-build-ios-pipeline created
task.tekton.dev/mobile-app-build-ios-task created
pipelineresource.tekton.dev/mobile-app-build-ios-git-resource created

Mobile App Distribution Pipeline

Ejecute el siguiente mandato.

oc apply -f pipeline/mobile-app-publish -n <projectname>

Se genera la salida siguiente.

pipelineresource.tekton.dev/appcenter-git-resource created
pipeline.tekton.dev/application-center-deploy created
task.tekton.dev/application-center-upload created

Mobile App Test Pipeline for Android

Requisitos previos

Para ejecutar la interconexión de prueba de aplicación para android necesita tener una cuenta BitBar con la clave de API, ID de dispositivo, ID de infraestructura e ID de proyecto. ID.

Ejecute el siguiente mandato.

oc apply -f pipeline/mobile-app-test-android -n <projectname>

Se genera la salida siguiente.

pipelineresource.tekton.dev/mobile-app-test-android-git-resource created
pipeline.tekton.dev/mobile-app-test-android-pipeline created
task.tekton.dev/mobile-app-test-android-task created

Los mandatos anteriores crean tareas, interconexiones y recursos. Puede ver las tareas, los recursos y las interconexiones en el panel de control de Tekton

Tareas del panel de control de Tekton

Recursos del panel de control de Tekton

Interconexiones del panel de control de Tekton

Ejecución de la interconexión con los recursos adecuados desde el panel de control de Tekton

  1. Edite el archivo de recursos con el URL de repositorio git adecuado de la aplicación.
     pipeline/mobile-app-registration/appregistrationgitresource.yaml
     pipeline/mobile-app-build-android/ buildandoridgitresource.yaml
     pipeline/mobile-app-build-ios/ buildiosgitresource.yaml
     pipeline/mobile-app-publish/mobileapppublishgitresource.yaml
     pipeline/mobile-app-test-android/testandroidappgitresource.yaml
    
  2. Ejecute el mandato para actualizar los recursos de la interconexión Tekton mobile-app-registration.
    oc apply -f pipeline/mobile-app-registration/appregistrationgitresource.yaml -n <projectname>
    

    Se genera la salida siguiente.

    pipelineresource.tekton.dev/mobile-app-registration-git-resource configured
    
  3. Ejecute el mandato para actualizar los recursos de la interconexión Tekton mobile-app-build-android.
    oc apply -f pipeline/mobile-app-build-andorid/buildandoridgitresource -n <projectname>
    

    Se genera la salida siguiente.

    pipelineresource.tekton.dev/mobile-app-build-android-git-resource configured
    
  4. Ejecute el mandato para actualizar los recursos de la interconexión Tekton mobile-app-build-ios.
    oc apply -f pipleline/mobile-app-build-ios/buildiosgitresource -n <projectname>
    

    Se genera la salida siguiente.

    pipelineresource.tekton.dev/mobile-app-build-ios-git-resource configured
    
  5. Ejecute el mandato para actualizar los recursos de la interconexión Tekton mobile-app-publish.
    oc apply -f pipeline/mobile-app-publish/mobileapppublishgitresource.yaml -n <projectname>
    

    Se genera la salida siguiente.

      pipelineresource.tekton.dev/appcenter-git-resource configured
    
  6. Ejecute el mandato para actualizar los recursos de la interconexión Tekton mobile-app-test-android.
      oc apply -f pipeline/mobile-app-test-android/testandroidappgitresource.yaml -n <projectname>
    

    Se genera la salida siguiente.

      pipelineresource.tekton.dev/mobile-app-test-android-git-resource configured
    

Ejecute las interconexiones utilizando PipelineRun

Abra el panel de control de Tekton y pulse la sección Interconexiones.

  1. Pulse la interconexión que se ha de ejecutar. PipelineRun

  2. Pulse Crear PipelineRun. PipelineRun

  3. Seleccione el git-source PipelineResources que ha creado anteriormente.
  4. Proporcione los parámetros necesarios y la cuenta de servicio como valor predeterminado.
  5. Pulse Crear PipelineRun. PipelineRun
  6. Para ver los registros y el estado de PipelineRun. Vaya al panel de control Tekton y seleccione PipelineRuns. PipelineRun

Despliegue de desencadenantes de tekton para webhooks

NOTA: Estos pasos solo son necesarios si desea utilizar Webhooks.

Configuración de desencadenantes de tekton para Build Pipeline for Android

Requisitos previos

Antes de utilizar los desencadenantes de tekton para la creación de android, debe añadir una github-token al archivo yaml de enlace de desencadenante. Vaya al archivo pipeline/android-pipeline-trigger/mfpandroidtriggerbinding.yaml y edite el marcador {githubToken} con un valor github-token válido.

Ejecute el siguiente mandato.

oc apply -f pipeline/android-pipeline-trigger -n <projectname>

Se genera la salida siguiente.

eventlistener.tekton.dev/mfp-android-webhook-listener created
route.route.openshift.io/mfp-android-webhook-route created
triggerbinding.tekton.dev/mfp-android-trigger-binding created
rolebinding.rbac.authorization.k8s.io/mfp-android-trigger-binding created
serviceaccount/mfp-android-triggers-sa created
triggertemplate.tekton.dev/mfp-android-trigger-template created
role.rbac.authorization.k8s.io/mfp-trigger-role created

Configuración de desencadenantes de tekton para Build Pipeline for iOS

Requisitos previos

Antes de utilizar los desencadenantes de tekton para ios, debe añadir el archivo yaml de enlaces de desencadenante. Vaya al archivo pipeline/ios-pipeline-trigger/mfpiostriggerbinding.yaml y edite los siguientes parámetros {githubToken}, {xcodeServerBotId} y xcodeServerHost con valores válidos.

Ejecute el siguiente mandato.

oc apply -f pipeline/ios-pipeline-trigger -n <projectname>

Se genera la salida siguiente.

eventlistener.tekton.dev/mfp-ios-webhook-listener created
route.route.openshift.io/mfp-ios-webhook-route created
triggerbinding.tekton.dev/mfp-ios-trigger-binding created
rolebinding.rbac.authorization.k8s.io/mfp-ios-trigger-binding created
serviceaccount/mfp-ios-triggers-sa created
triggertemplate.tekton.dev/mfp-ios-trigger-template created

Los mandatos anteriores crean EventListeners, TriggerBindings y TriggerTemplates a los que se puede acceder desde el panel de control de Tekton.

Desencadenantes

Desencadenantes

Desencadenantes

Expanda también dos rutas que se pueden utilizar para configurar webhooks. En el panel de Openshift, vaya a Redes y Rutas, una es para la creación de android y la otra es para la creación de iOS.

Desencadenantes

Desencadenamiento de interconexiones utilizando webhook

Ejecute la interconexión con webhook para desencadenar automáticamente PipelineRun cuando haya cambios en el repositorio git de la aplicación.

Creación de Webhooks

  1. Vaya al repositorio Git para el que desea configurar el webhook.
  2. Vaya al separador Valores del repositorio. Webhooks
  3. Pulse Webhooks en la barra de navegación izquierda y luego pulse Añadir webhook.
  4. Proporcione el campo URL de carga útil con una de las rutas que se han creado durante la configuración de los desencadenantes de tekton. El Tipo de contenido debe establecerse en application/json y debe seleccionar el suceso en el que desea que se ejecute el webhook. Webhooks
  5. Pulse Añadir webhook

El suceso del repositorio git desencadenará la creación de una PipelineRun configurada para esta ruta. Para ver los registros y el estado de PipelineRun. Vaya al panel de control de Tekton y seleccione PipelineRuns.

Configuración del servidor XCode para crear aplicaciones iOS

  1. En una máquina Mac, configure Xcode.
  2. Abra Xcode.
  3. En la parte superior del menú, seleccione Xcode Server.
  4. Active Xcode Server para ejecutar las integraciones.
  5. Una vez activado el servidor, vaya a la sección Permisos y cambie la opción Crear y ver bots a todos los usuarios.
  6. Vaya a la sección Cuentas y añada una nueva cuenta con el tipo de cuenta Xcode Server y, a continuación, seleccione el servidor que está disponible.
  7. Una vez configurado Xcode Server, se ha de configurar el bot para ejecutar las integraciones y generar un ipa. Abra el proyecto iOS que desea crear en Xcode.
  8. Vaya al registro de compilación del proyecto y seleccione la opción Por grupo. El servidor configurado deberá estar visible.
  9. Pulse con el botón derecho el servidor y pulse Crear bot.
  10. Asigne un nombre al bot y pulse Siguiente. Asegúrese de que el nombre de bot no contenga ningún espacio. Configure el control de origen para el bot y pulse Siguiente.
  11. En la configuración de compilación, bajo Acciones, asegúrese de que la opción Archive esté seleccionada. Bajo la opción Exportar, seleccione Utilizar plist de opciones de exportación personalizadas. Asegúrese de que tiene un archivo plist con el formato siguiente. XCode
  12. En la sección Planificar integraciones de bot, seleccione que las integraciones se ejecuten Manualmente y luego pulse Siguiente. XCode
  13. Seleccione las opciones de compilación relevantes para el proyecto y pulse Siguiente.
  14. En las secciones Certificados y perfiles, asegúrese de que los certificados y perfiles relevantes para generar el ipa se añaden al servidor y pulse Siguiente.
  15. Añada estos argumentos y proporcione los valores relevantes para el mandato xcodebuild en la sección Argumentos y variables de entorno y pulse Siguiente. XCode
  16. En la sección Desencadenantes, pulse Añadir y seleccione Script previo a la integración, asígnele un nombre y añada el script siguiente a la sección del script que descarga las dependencias CocoaPod para la aplicación (si existen) y, a continuación, pulse Crear.
    #!/bin/sh
    cd $XCS_PRIMARY_REPO_DIR
    PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands"
    . ~/.bash_profile
    bundle install
    npm install
    ionic cordova platform add ios
    ionic cordova prepare ios
    

    XCode

  17. Una vez creado correctamente el bot, espere a que se ejecute la integración. Cuando la integración se haya ejecutado correctamente, vaya a la integración y vaya a Registros. En los registros deberá ver el botId. El botId es necesario para ejecutar las interacciones desde las interconexiones de Tekton. XCode
  18. Ahora la configuración de Xcode Server se ha realizado correctamente. Utilice el ID de bot para desencadenar Build Pipeline for iOS.
Last modified on June 29, 2020