Code Stream proporciona un complemento de Jenkins, que activa trabajos de Jenkins que compilan y prueban el código fuente. El complemento de Jenkins ejecuta casos de prueba y puede utilizar scripts personalizados.

Para ejecutar un trabajo de Jenkins en la canalización, utilice un servidor de Jenkins y agregue el endpoint de Jenkins en Code Stream. A continuación, cree una canalización y agréguele una tarea de Jenkins.

Cuando se utilizan la tarea de Jenkins y un endpoint de Jenkins en Code Stream, se puede crear una canalización que admita trabajos de varias ramas en Jenkins. El trabajo de varias ramas incluye trabajos individuales en cada rama de un repositorio de Git. Al crear canalizaciones en Code Stream que admiten trabajos de varias ramas:

  • La tarea de Jenkins puede ejecutar trabajos de Jenkins que residen en varias carpetas del servidor de Jenkins.
  • Puede anular la ruta de la carpeta en la configuración de la tarea de Jenkins para que utilice una ruta de carpeta diferente, lo que anula la ruta predeterminada definida en el endpoint de Jenkins en Code Stream.
  • Las canalizaciones de varias ramas en Code Stream detectan archivos de trabajo de Jenkins de tipo .groovy en un repositorio de Git o GitHub, y comienzan a crear trabajos para cada rama que examina en el repositorio.
  • Puede anular la ruta predeterminada definida en el endpoint de Jenkins con una ruta proporcionada en la configuración de la tarea de Jenkins y ejecutar un trabajo y una canalización asociados con cualquier rama dentro de un trabajo principal de Jenkins.

Requisitos previos

  • Configure un servidor de Jenkins que ejecute la versión 1.561 o posterior.
  • Compruebe si es un miembro de un proyecto en Code Stream. Si no es miembro, solicite al administrador de Code Stream que lo agregue como miembro de un proyecto. Consulte Cómo agregar un proyecto en Code Stream.
  • Compruebe que haya un trabajo en el servidor de Jenkins para que la tarea de canalización pueda ejecutarlo.

Procedimiento

  1. Agregue y valide un endpoint de Jenkins.
    1. Haga clic en Endpoints > Nuevo endpoint.
    2. Seleccione un proyecto y, para el tipo de endpoint, seleccione Jenkins. A continuación, introduzca un nombre y una descripción.
    3. Si este endpoint es un componente fundamental para la empresa en la infraestructura, habilite la opción Marcar como restringido.
    4. Introduzca la URL del servidor de Jenkins.
    5. Escriba el nombre de usuario y la contraseña para iniciar sesión en el servidor de Jenkins. A continuación, introduzca la información restante.
      Tabla 1. Información restante para el endpoint de Jenkins
      Entrada de endpoint Descripción
      Ruta de la carpeta Ruta de la carpeta que agrupa los trabajos. Jenkins puede ejecutar todos los trabajos de la carpeta. Puede crear subcarpetas. Por ejemplo:
      • folder_1 puede incluir job_1
      • folder_1 puede incluir folder_2, lo que puede incluir job_2

      Al crear un endpoint para folder_1, la ruta de la carpeta es job/folder_1 y el endpoint solo muestra job_1.

      Para obtener la lista de trabajos de la carpeta secundaria denominada folder_2, debe crear otro endpoint que use la ruta de carpeta como /job/folder_1/job/folder_2/.

      Ruta de carpeta para trabajos de Jenkins de varias ramas Para admitir trabajos de Jenkins de varias ramas, en la tarea de Jenkins, introduzca la ruta de acceso completa que incluye la URL del servidor de Jenkins y la ruta de acceso completa del trabajo. Cuando se incluye una ruta de carpeta en la tarea de Jenkins, esa ruta reemplaza la ruta que aparece en el endpoint de Jenkins. Con la ruta de la carpeta personalizada en la tarea de Jenkins, Code Stream solo muestra trabajos que están presentes en esa carpeta.
      • Por ejemplo: https://server.yourcompany.com/job/project
      • Si la canalización también debe activar el trabajo principal de Jenkins, use: https://server.yourcompany.com/job/project/job/main
      URL URL del host del servidor de Jenkins. Introduzca la URL con el formato protocol://host:port. Por ejemplo: http://192.10.121.13:8080
      Intervalo de sondeo Duración del intervalo en el que Code Stream sondea el servidor de Jenkins en busca de actualizaciones.
      Número de reintentos de solicitud Número de reintentos de la solicitud de compilación programada para el servidor de Jenkins.
      Tiempo de espera entre reintentos Número de segundos de espera antes de volver a intentar la solicitud de compilación para el servidor de Jenkins.
    6. Haga clic en Validar y compruebe que el endpoint se conecta a Code Stream. Si no se conecta, corrija los errores y, a continuación, haga clic en Guardar.
      El endpoint de Jenkins que compila y prueba el código requiere la URL y permite crear una variable que almacena la contraseña del usuario.
  2. Para compilar el código, cree una canalización y agregue una tarea que use el endpoint de Jenkins.
    1. Haga clic en Canalizaciones > Nueva canalización > Lienzo en blanco.
    2. Haga clic en la etapa predeterminada.
    3. En el área Tarea, introduzca un nombre para la tarea.
    4. Seleccione el tipo de tarea como Jenkins.
    5. Seleccione el endpoint de Jenkins que creó.
    6. En el menú desplegable, seleccione un trabajo del servidor de Jenkins que ejecutará la canalización.
    7. Introduzca los parámetros del trabajo.
    8. Introduzca el token de autenticación del trabajo de Jenkins.
    Cuando configure una tarea de Jenkins que use el endpoint de Jenkins, seleccione el trabajo de Jenkins, agregue valores e introduzca un token.
  3. Habilite y ejecute la canalización, y vea cómo se ejecuta.
    La ejecución de la canalización para la tarea de Jenkins muestra los detalles del trabajo de Jenkins, incluidos el identificador de trabajo, la URL del trabajo, las claves y los valores del resultado del trabajo.
  4. Consulte los detalles y el estado de la ejecución en el panel de control de la canalización.
    Puede identificar cualquier error y su causa. También puede ver tendencias sobre la duración de la ejecución de las canalizaciones, las canalizaciones completadas y los errores.
    El panel de control de la canalización muestra detalles sobre las ejecuciones de canalizaciones, como el número de ejecuciones de canalizaciones y sus duraciones, y el estado de cada ejecución.

Resultados

Enhorabuena. Ha integrado Code Stream con Jenkins tras agregar un endpoint, crear una canalización y configurar una tarea de Jenkins que compila el código.

Ejemplo: Ejemplo de YAML para una tarea de compilación de Jenkins

Para el tipo de tarea de compilación de Jenkins utilizada en este ejemplo, el YAML se asemeja al siguiente código, con las notificaciones activadas:

test:
  type: Jenkins
  endpoints:
    jenkinsServer: jenkins
  input:
    job: Add two numbers
    parameters:
      Num1: '23'
      Num2: '23'

Qué hacer a continuación

Revise las demás secciones para obtener más información. Consulte Conectar Code Stream a endpoints.