world tutorial plugin hello example español jenkins jenkins-plugins jenkins-pipeline

tutorial - Canalizaciones múltiples de Jenkins: ¿Cuál es la variable del nombre de la sucursal?



jenkins pipeline plugin (3)

Soy nuevo en el plugin Jenkins Pipeline, y sobre todo nuevo en el plugin multibranch pipeline. En una construcción estándar, tengo acceso a la variable $ GIT_BRANCH para saber qué rama se está construyendo. Sin embargo, esa variable no está configurada en la tubería multibranquio. He intentado env.GIT_BRANCH también, y traté de pasar $ GIT_BRANCH como un parámetro para la compilación. Nada parece funcionar. Supuse que dado que la compilación sabe sobre la rama que se está creando (puedo ver el nombre de la rama en la parte superior de la salida de la consola, que hay algo que puedo usar, simplemente no puedo encontrar ninguna referencia a la misma).

Aquí hay un ejemplo de por qué esto es importante. Estamos usando un patrón de gitflow. Tenemos ramas dev, release y master que se usan para crear artefactos. La rama dev se implementa automáticamente, las otras dos no. También hay funciones, corrección de errores y ramas de revisión. Estas ramas deberían construirse, pero no producir un artefacto. Deben usarse solo para informar al desarrollador si hay un problema con su código. Necesito saber qué rama se está construyendo para ejecutar los pasos correctos.

Cualquier ayuda sería apreciada.


Encontré útil este ejemplo de publicación : Variables Git en el plugin Jenkins Workflow

sh ''//... git rev-parse --abbrev-ref HEAD > GIT_BRANCH'' git_branch = readFile(''GIT_BRANCH'').trim() echo git_branch //... ''


Todavía no hay una variable dedicada para este propósito ( JENKINS-30252 ). Mientras tanto, puede aprovechar el hecho de que el nombre del subproyecto se toma del nombre de la sucursal y se usa

env.JOB_NAME.replaceFirst(''.+/'', '''')

Esto ya ha sido resuelto, ver la respuesta de Krzysztof Krasoń .


La variable env.BRANCH_NAME contiene el nombre de la rama.

A partir de Pipeline Groovy Plugin 2.18 , también puedes usar BRANCH_NAME ( env no es obligatorio pero aún así se acepta).