2011-03-03 18 views
7

Estamos ejecutando un servidor de compilación Hudson internamente en un proyecto. Enviamos un correo electrónico cada vez que el servidor implementa una nueva versión.Cómo utilizar los valores Hudson "Estructura parametrizada" en un correo electrónico

Deseo que este correo electrónico contenga más información, incluido un nombre de usuario y una razón para la compilación.

De la documentación de hudsons en Parameterized builds, han agregado parámetros de texto a la compilación. Estoy tratando aquí con dos diferentes (con el fin de ver lo que funciona):

En configuración del trabajo This build is parameterized he añadido las siguientes dos variables

Name:   USER 
Default value: userCAPITALIZED 

Name:   user 
Default value: userstandard 

Ver Captura de parameterized settings http://justaddwater.dk/wp-content/uploads/2011/03/hudson-parameterize-settings-243x300.png.

Ahora, en la sección inferior "Notificación de correo electrónico editable" he intentado TODO para recuperar estos valores.

Lo que funciona: Todas las variables de compilación Hudson estándar funcionan. Al igual que $CHANGES, $SVN_REVISION, etc.

Pero yo he probado el tener acceso a las variables user y USER sin ninguna suerte. Aquí está una lista de lo que no funciona:

subject: test of parametrized mail 1user:${env.user}, 2USER:${USER}, 3$USER, 4${ENV, USER}, 5%USER%,stop 

more tests 
${env, user} 
${env, USER} 
${ENV, user} 
${ENV, USER} 
${user} 
${USER} 
${env.user} 
${ENV.user} 
${env.USER} 
${ENV.USER} 
$user 
$USER 
%user% 
%USER% 

changes $CHANGES 
changes ${CHANGES} 
subversion revision: $SVN_REVISION 
subversion revision: ${SVN_REVISION} 

Screenshot of email configuration http://justaddwater.dk/wp-content/uploads/2011/03/hudson-email-configuration-parameters-300x171.png

Esto simplemente se traduce en un correo electrónico con este contenido:

test of parametrized mail 1user:${env.user}, 2USER:${USER}, 3$USER, 4${ENV, USER}, 5%USER%,stop 

more tests 
${env, user} 
${env, USER} 
${ENV, user} 
${ENV, USER} 
${user} 
${USER} 
${env.user} 
${ENV.user} 
${env.USER} 
${ENV.USER} 
$user 
$USER 
%user% 
%USER% 

changes 
changes 
subversion revision: 400 
subversion revision: 400 

Como se puede ver, sólo la revisión de la subversión se expande correctamente . Los cambios están vacíos para este trabajo en particular, así que ignórenlo.

¿Cómo defines parámetros en el correo electrónico? ¿Alguna sugerencia? estoy usando la versión Hudson 1.395

+0

Esta pregunta solo ganado med la insignia "Tumbleweed" sin votos, respuestas. Por lo tanto, ahora comienzo una recompensa por aprender más sobre las posibilidades de la configuración de correo electrónico de Hudon. –

Respuesta

14

Es necesario utilizar un parámetro como éste: ${ENV, var="USER"}

Y 'usuario' es el mismo que el 'usuario' - que necesita para dar diferentes nombres a continuación.

+0

Muchas gracias por esto. Tengo muchas ganas de probar esto en el trabajo la próxima semana. –

+0

¡Gracias, funciona como un encanto! –

3

Además de lo que sugiere Rene (es decir, para usar ${ENV, var="USER"}) Creo que necesita instalar otra plugin called 'email-ext'. Encontré esa información en some other question (aunque no hay una respuesta aceptada).

+0

Gracias por el recordatorio. Me olvidé de escribir que el complemento es necesario (me refiero a su configuración de configuración de todos modos). –

0

Sé que esta es una vieja pregunta, pero pedirle al usuario que ingrese su nombre de usuario es algo redundante y puede ser suplantada.

Hudson ya sabe quién desencadenó la compilación (puede verla en la página de compilación), sin embargo, no expone esto en una variable. Existe un complemento Job-Exporter que exporta esta información (y más) en un archivo en el área de trabajo. Será bajo la propiedad build.user.name.

A partir de ahí, se puede utilizar el plugin EnvInject, suministrar con este archivo de propiedades exportado (hudsonBuild.properties), y usted tendrá una variable de entorno llamada build.user.name disponibles para ser utilizados en el correo electrónico como ${ENV, var="build.user.name"}

Cuestiones relacionadas