Para crear una canalización de integración continua y distribución continua (Continuous Integration and Continuous Delivery, CICD) en Automation Pipelines, puede agregar manualmente etapas y tareas. Para planificar la compilación nativa de CICD, recopile la información que necesite y, a continuación, cree una canalización y agréguele manualmente etapas y tareas.

Debe planificar las etapas de integración continua (CI) y entrega continua (CD) de la canalización. Después de crear la canalización y ejecutarla, puede supervisar las tendencias en las ejecuciones de la canalización.

Cuando una canalización incluye una imagen de Docker Hub, debe asegurarse de que la imagen tenga cURL o wget integrada antes de ejecutar la canalización. Cuando se ejecuta la canalización, Automation Pipelines descarga un archivo binario que utiliza cURL o wget para ejecutar comandos.

El área de trabajo de canalización de Automation Pipelines admite Docker y Kubernetes para tareas de integración continua y tareas personalizadas.

Para obtener información sobre la configuración del área de trabajo, consulte Configurar el área de trabajo de la canalización.

Planificación de los requisitos internos y externos

Para planificar las etapas de CI y CD de la canalización, consulte los requisitos siguientes que indican qué se debe hacer antes de crear la canalización.

En este ejemplo, se utiliza un área de trabajo de Docker.

Para crear una canalización a partir de este plan de ejemplo, debe utilizar un host de Docker, un repositorio de Git, Maven y varias herramientas de compilación de posprocesamiento.

Repositorios y endpoints locales remotos o basados en la nube que necesitará:

  • Un repositorio de código fuente de Git donde los desarrolladores comprueban el código. Automation Pipelines extrae el código más reciente a la canalización cuando los desarrolladores confirman cambios.
  • Un endpoint de Docker para el host de compilación de Docker que ejecutará los comandos de compilación dentro de un contenedor.
  • Una imagen de Builder que crea el contenedor donde se ejecutan las pruebas de integración continua.
  • Un endpoint del registro de imágenes del que el host de compilación de Docker extrae la imagen de Builder.

Necesitará acceso a un proyecto. El proyecto agrupa todo el trabajo, incluidos la canalización, los endpoints y los paneles de control. Compruebe si es un miembro de un proyecto en Automation Pipelines. Si no lo es, solicite al administrador de Automation Pipelines que lo agregue como miembro de un proyecto. Consulte Cómo agregar un proyecto en Automation Pipelines.

Necesitará un webhook de Git que permita a Automation Pipelines utilizar el activador de Git para activar la canalización cuando los desarrolladores confirmen cambios de código. Consulte Cómo usar el activador de Git en Automation Pipelines para ejecutar una canalización.

Cómo se crea la canalización de CICD y se configura el área de trabajo

Deberá crear la canalización y, a continuación, configurar el área de trabajo, los parámetros de entrada de la canalización y las tareas.

Para crear la canalización, haga clic en Canalizaciones > Nueva canalización > Lienzo en blanco.

Cuando cree una canalización, puede utilizar el lienzo en blanco.

En la pestaña Área de trabajo, introduzca la información de integración continua:

  • Incluya el host de compilación de Docker.
  • Introduzca la dirección URL de la imagen de Builder.
  • Seleccione el endpoint del registro de imágenes para que la canalización pueda extraer la imagen de este. El contenedor ejecuta las tareas de CI e implementa la imagen. Si el registro necesita credenciales, primero debe crear el endpoint del registro de imágenes y, a continuación, seleccionarlo para que el host pueda extraer la imagen del registro.
  • Agregue los artefactos que se deben almacenar en caché. Para que una compilación se realice correctamente, los artefactos, como los directorios, se descargan como dependencias. La memoria caché es la ubicación en la que residen estos artefactos. Por ejemplo, los artefactos dependientes pueden incluir el directorio .m2 para Maven y el directorio node_modules para Node.js. Estos directorios se almacenan en caché a través de ejecuciones de canalización para ahorrar tiempo durante las compilaciones.

    Cuando se crea manualmente una canalización, se configura el área de trabajo para la canalización en la pestaña Área de trabajo.

En la pestaña Entrada, configure los parámetros de entrada de la canalización.

  • Si la canalización utilizará parámetros de entrada de un evento activador de Git, Gerrit o Docker, seleccione el tipo de activador para los parámetros de inserción automática. Los eventos pueden incluir Cambiar asunto para Gerrit o Git, o el nombre de propietario del evento para Docker. Si la canalización no utilizará ningún parámetro de entrada transmitido desde el evento, deje Parámetros de inserción automática establecidos en Ninguno.
  • Para aplicar un valor y una descripción a un parámetro de entrada de la canalización, haga clic en los tres puntos verticales y, a continuación, en Editar. El valor que introduzca se utilizará como entrada en tareas, etapas o notificaciones.
  • Para agregar un parámetro de entrada de la canalización, haga clic en Agregar. Por ejemplo, puede agregar approvers para mostrar un valor predeterminado para cada ejecución, pero puede anularlo para mostrar un aprobador diferente en tiempo de ejecución.
  • Para agregar o quitar un parámetro insertado, haga clic en Agregar o quitar parámetro insertado. Por ejemplo, elimine cualquier parámetro que no se utilice para reducir el desorden en la página de resultados y muestre solamente los parámetros de entrada que se están utilizando.

    Cuando se crea manualmente una canalización de CICD, se configuran los parámetros de entrada en la pestaña Entrada.

Configure la canalización para probar el código:

  • Agregue y configure una tarea de CI.
  • Incluya los pasos para ejecutar mvn test en el código.
  • Para identificar cualquier problema después de que se ejecute la tarea, ejecute herramientas de compilación posteriores al procesamiento, como JUnit, JaCoCo, FindBugs y Checkstyle.

    Para probar el código, configure la tarea de CI con pasos y herramientas de compilación posteriores al procesamiento.

Configure la canalización para compilar el código:

  • Agregue y configure una tarea de CI.
  • Incluya los pasos para ejecutar mvn clean install en el código.
  • Incluya la ubicación y el nombre del archivo JAR para que conserve el artefacto.

    Para compilar el código, agregue los pasos en la tarea de CI.

Configure la canalización para publicar la imagen en el host de Docker:

  • Agregue y configure una tarea de CI.
  • Agregue los pasos que confirmarán, exportarán, compilarán e insertarán la imagen.
  • Agregue la clave de exportación de IMAGE para la siguiente tarea que se va a consumir.

    Para publicar la imagen en el host de Docker, agregue los pasos y la clave de exportación a la tarea de CI.

Guarde la canalización después de configurar el área de trabajo, los parámetros de entrada, las tareas de prueba y las tareas de compilación.

Cómo habilitar y ejecutar la canalización

Después de configurar la canalización con fases y tareas, puede guardar y habilitar la canalización.

A continuación, espere a que la canalización se ejecute y finalice y compruebe que se completó correctamente. Si se produjeron errores, corríjalos y vuelva a ejecutarla.

Después de que la canalización se complete correctamente, estos son algunos de los aspectos que debe confirmar:

  • Examine la ejecución de la canalización y vea los resultados de los pasos de las tareas.
  • En el área de trabajo de la ejecución de la canalización, busque los detalles del contenedor y el repositorio de Git clonado.
  • En el área de trabajo, consulte los resultados de las herramientas de posprocesamiento y compruebe si hay errores, cobertura de código y problemas de estilo.
  • Confirme que el artefacto se conserva. Confirme también que la imagen se exportó con el nombre y el valor IMAGE.
  • Vaya al repositorio de Docker y compruebe que la canalización publicó el contenedor.

Para ver un ejemplo detallado que muestre cómo Automation Pipelines integra continuamente el código, consulte Cómo integrar de forma continua código de un repositorio de GitLab o GitHub en la canalización en Automation Pipelines.