Disparar a Jenkins a partir de las nuevas tags y confirmaciones

Estamos utilizando el complemento de Git: https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin

Actualmente, a través de webhooks, comenzamos una compilation de Jenkins cada vez que se envía un cambio a GitHub. Ahora queremos activar la misma compilation cuando se agrega una nueva label. Entonces tenemos dos condiciones desencadenantes:

  1. Se envía un cambio de código a GitHub
  2. Se crea una label

Si probamos la mención de corrección en este hilo, las comstackciones comienzan solo para las tags. jenkins dispara la compilation si se lanza una nueva label

¿Cómo podemos hacerlo para ambos escenarios?

Pregunta # 02: ¿Cómo podemos get el nombre de la label dentro de una compilation de Jenkins? ¿Existe alguna variable de entorno para ello?

Intenta usar el plugin Jenkins GitHub

Funciona perfectamente para nosotros tanto para la label creada como para los cambios realizados.

Para las tags, puede usar la variable de entorno $ {GIT_BRANCH} , debe contener la label en formatting de origen / tags /% tag%

Proceso de 4 pasos:

  1. Código de git commit -m "Some meaningful message" : git commit -m "Some meaningful message"
  2. Crea una label
    • Para lanzar a la etapa: git tag -a release_stage_<meaningful tag>
    • Para lanzar a prod: git tag -a release_production_<meaningful tag>
  3. Push Push Empuje la label: git push origin release_stage_<same_meaningful_tag>
  4. Empujar el git push origin <branch_name>

Archivo de Jenkins:

stage('Checkout Project') properties([pipelineTriggers([[$class: 'GitHubPushTrigger']])]) checkout scm git_branch = env.BRANCH_NAME git_branch_to_release = env.BRANCH_NAME git_tag = sh returnStdout: true, script: 'git tag -l --points-at HEAD'

//And now you can use to do anything with tags

“ `

 if(currentBuild.result=='SUCCESSFUL' || currentBuild.result=='SUCCESS' || currentBuild.result == null) { if (git_tag.contains('release_stage') || git_tag.contains('release_production')) { // Do anything which you want to do with tags } } 

“ `