Infinite Loop en el guión de gelatina para el complemento de EEXT de correo electrónico de Jenkin. ¿Por qué? [cerrado

StackOverflow https://stackoverflow.com/questions/6386635

Pregunta

Estoy tratando de utilizar el complemento de órma de correo electrónico en Jenkins para enviar un correo electrónico que contenga todos los cambios desde la última construcción exitosa. He reunido lo siguiente, reemplazando la porción de conjunto de cambio del script html.jelly predeterminado, pero entra en un bucle infinito. No veo por qué, y no estoy seguro de cómo lo depuraría. Nunca antes había escrito un guión de gelatina, por lo que probablemente haya algo simple aquí.

<j:set var="changesBuild" value="${build.previousNotFailedBuild}" />
<j:if test="${changesBuild!=null}">
  <j:set var="changesBuild" value="changesBuild.nextBuild" scope="parent" />
</j:if>
<j:if test="${changesBuild==null}">
  <j:set var="changesBuild" value="build" scope="parent"  />
</j:if>

<j:while test="${changesBuild!=null}">
  <j:set var="changeSet" value="${changesBuild.changeSet}" />
  <j:if test="${changeSet!=null}">
  <j:set var="hadChanges" value="false" />
    <TABLE width="100%">
    <TR><TD class="bg1" colspan="2"><B>CHANGES</B></TD></TR>
    <j:forEach var="cs" items="${changeSet}" varStatus="loop">
      <j:set var="hadChanges" value="true" />
      <j:set var="aUser" value="${cs.hudsonUser}"/>
      <TR>
        <TD colspan="2" class="bg2">${spc}Revision <B>${cs.commitId?:cs.revision?:cs.changeNumber}</B> by
          <B>${aUser!=null?aUser.displayName:cs.author.displayName}: </B>
          <B>(${cs.msgAnnotated})</B>
         </TD>
      </TR>
      <j:forEach var="p" items="${cs.affectedFiles}">
        <TR>
          <TD width="10%">${spc}${p.editType.name}</TD>
          <TD>${p.path}</TD>
        </TR>
      </j:forEach>
    </j:forEach>
    <j:if test="${!hadChanges}">
      <TR><TD colspan="2">No Changes</TD></TR>
    </j:if>
    </TABLE>
    <BR/>
  </j:if>
  <j:set var="changesBuild" value="changesBuild.nextBuild" scope="parent" />
</j:while>

El correo electrónico-EXT tiene un token de cambios_since_last_success, pero no veo una forma de ponerlo a disposición al intentar enviar correos electrónicos HTML agradables

¿Fue útil?

Solución

Depugé un poco y descubrí que la segunda a la última línea:

<j:set var="changesBuild" value="changesBuild.nextBuild" scope="parent" />

Necesita eliminar el alcance = "Parent". y agregue los $ {} a su alrededor:

  <j:set var="changesBuild" value="${changesBuild.nextBuild}" />
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top