El webhook de Gitlab no activa una compilación en jenkins

4 minutos de lectura

avatar de usuario
Ópalo

Tengo un grupo de trabajos de canalización de varias ramas generados con el siguiente script maravilloso:

[
      'repo1',
      'repo2',
].each { service ->

  multibranchPipelineJob(service) {

    displayName(service)

    branchSources {
      git {
        remote("[email protected]:whatever/${service}.git")
        credentialsId('gitlab-ssh-key')
      }
    }

    orphanedItemStrategy {
      discardOldItems {
        daysToKeep(0)
        numToKeep(30)
      }
    }

    triggers {
      periodic(5)
    }

  }
}

y en cada repo un Jenkinsfile que se ve de la siguiente manera:

#!/usr/bin/env groovy

properties([
      gitLabConnection('[email protected]'),
      pipelineTriggers([
            [
                  $class               : 'GitLabPushTrigger',
                  triggerOnPush        : true,
                  triggerOnMergeRequest: true,
            ]
      ]),
      disableConcurrentBuilds(),
      overrideIndexTriggers(false)
])

node {

  def sbtHome = tool name: 'sbt-0.13.15', type: 'org.jvnet.hudson.plugins.SbtPluginBuilder\$SbtInstallation'

  stage('Checkout') {
    checkout scm
  }

  stage('Build') {
    sh "'${sbtHome}/bin/sbt' clean compile"
  }

  stage('Test') {
    sh "'${sbtHome}/bin/sbt' test"
  }

  if (env.BRANCH_NAME == 'develop' || env.BRANCH_NAME == 'master') {
    stage('Publish') {
      sh "'${sbtHome}/bin/sbt' publish"
    }
  }
}

Todo funciona correctamente. los sembradora El proyecto genera todas las carpetas desde el primer script y todas las ramas para el repositorio dado se construyen correctamente.

Desafortunadamente, tengo problemas para activar una compilación para cualquier rama después de que se haya realizado commit + push en gitlab.

Tengo jenkins configurado correctamente; me refiero al complemento gitlab, hay una conexión y todo funciona bien.

También agregué un webhook en el lado de gitlab y también se ejecuta correctamente. Después de enviar un impulso de prueba, recibo 200 OK de jenkins y veo en los registros que se inició el escaneo de las ramas y se detectaron los cambios correctamente. Desafortunadamente, la compilación de la rama modificada no se inicia. Aquí hay un extracto del registro de escaneo de sucursales:

  Checking branch ci
      ‘Jenkinsfile’ found
    Met criteria
Changes detected: ci (a7b9ae2f930b0b10d52bb42f1ecf96a68bba4a30 → 39a4c1a65051d5e90079feec14ad22455a77c58e)
Did not schedule build for branch: ci

Estoy 100% seguro de que esto no es un problema con la comunicación entre mi instancia de jenkins y la cuenta de gitlab. Veo que el webhook se activa después de enviar a gitlab, veo que se envía la solicitud y se ejecuta el escaneo de la rama. También se detectan cambios, pero ¿Por qué diablos no se inicia el trabajo? tambien he leido el documentos a fondo y tener todo configurado correctamente.

Jenkins version: 2.150.3
Gitlab version: 11.8.1-ee

EDITAR

Parece que después de actualizar jenkins a v.2.164.1 todo empezó a funcionar correctamente.

  • ¿Qué versión del complemento de Gitlab tienes en Jenkins? Con la versión 2.1.60 de jenkins, el complemento 1.5.11 de gitlab y la versión 11.6.3-ce de gitlab, su DSL crea el trabajo de varias sucursales y la sucursal se crea al presionar. Intente crear uno de los repositorios con el complemento Open Blue Ocean y vea qué sucede. Por cierto, consulta stackoverflow.com/questions/50914104/…. Parece que el complemento aún no admite las solicitudes de combinación.

    – Carlos Cavero

    12 de marzo de 2019 a las 22:32


  • Hay un MR abierto para permitir MR para tuberías con múltiples ramales github.com/jenkinsci/gitlab-plugin/pull/857

    – Carlos Cavero

    12 de marzo de 2019 a las 23:29

  • ¿Podría compartir también su webhook de GitLab?

    – Carlos Cavero

    12 de marzo de 2019 a las 23:47

  • Desafortunadamente, no hay una sección de “Administración de código fuente”. ¿Se agrega a través de algún complemento?

    – Ópalo

    11 de marzo de 2019 a las 13:45

  • @Opal Editó la publicación, ¿podrías intentarlo?

    – Anton Barwald

    11 de marzo de 2019 a las 17:38

  • @Opal Está bien. Solo con el propósito de solucionar problemas, ¿podría configurar uno de los repositorios como “Freestyle” (en Jenkins) y seguir la guía en mi publicación? Luego verá la sección “Administración del código fuente”. ¡Gracias!

    – Anton Barwald

    12 de marzo de 2019 a las 6:46

  • No tengo idea si encuentro tiempo, pero lo intentaré.

    – Ópalo

    12 de marzo de 2019 a las 9:09

  • @Opal Lo entiendo totalmente. Tengo problemas para crear el problema que tienes. ¿Tiene más código de ejemplo para compartir o conoce un proyecto similar?

    – Anton Barwald

    12 de marzo de 2019 a las 14:54


  • he usado includes('*') y no ayudó en nada.

    – Ópalo

    11 de marzo de 2019 a las 13:40

  • ¿Cómo se puede comprobar?

    – Ópalo

    8 de marzo de 2019 a las 17:06

  • @Opal intente ir a la página de configuración del trabajo. Si la configuración no está allí (¿sección SCM?), compruebe las opciones de Proyecto, Carpeta, Organización y Sistema que contiene debido a la herencia de configuración.

    – Karol Dowbecki

    8 de marzo de 2019 a las 17:21


  • No tengo instalado el complemento “Basic Branch Build Strategies”. ¿Es necesario configurarlo?

    – Ópalo

    11 de marzo de 2019 a las 13:46

  • Instalé “Estrategias básicas de construcción de sucursales” y agregué “Estrategias de construcción: sucursales regulares” sin éxito. ¿Alguna otra idea?

    – Ópalo

    11 de marzo de 2019 a las 14:18

  • @Opal, ¿puede intentar definir un disparador vacío sin programación según esta respuesta para su trabajo y luego empujar a la rama?

    – Karol Dowbecki

    11 de marzo de 2019 a las 17:37


¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad