2015-02-25 1 views
0

J'ai un pipeline de génération Jenkins avec une tâche manuelle à déployer dans un environnement de contrôle qualité. Lorsque le projet est appelé, je veux pouvoir agréger le journal des modifications de la version actuelle à la dernière version qui a été déployée dans l'environnement QA.Jenkins - Qu'est-ce qui a changé entre 2 builds?

Je vois le moyen de le faire à travers le journal des modifications. Cependant, il ne semble pas y avoir un moyen facile d'obtenir cette information, puis de l'agréger.

Des idées sur la façon d'atteindre cet objectif?

Répondre

0

Nous faisons la même chose mais je n'ai pas trouvé de fonctionnalité de plugin Jenkins pour y parvenir.

J'ai utilisé l'étape de compilation 'Execute Shell' et codé la fonctionnalité requise dans le script shell. Nous exécutons Jenkins sous Linux, si vous utilisez Windows, vous pouvez obtenir la même chose à l'aide de la commande 'Execute Windows Batch'.

+0

Pourriez-vous me diriger dans la bonne direction de la façon d'y parvenir via le shell? – IanWatson

0

Le email-ext plugin peut faire quelque chose comme ça. Il permet de configurer les emails envoyés par Jenkins dans les moindres détails, parmi lesquels le scripting du contenu de l'email.

L'échantillon fourni à https://github.com/jenkinsci/email-ext-plugin/blob/master/src/main/resources/hudson/plugins/emailext/templates/html-with-health-and-console.jelly montre comment l'ensemble de changement peut itérer et listé dans la notification par courrier électronique résultant:

<!-- CHANGE SET --> 
<div class="content"> 
    <j:set var="changeSet" value="${build.changeSet}" /> 
    <j:if test="${changeSet!=null}"> 
    <j:set var="hadChanges" value="false" /> 
    <a href="${rooturl}${build.url}/changes"> 
     <h1>Changes</h1> 
    </a> 
    <j:forEach var="cs" items="${changeSet.logs}" varStatus="loop"> 
     <j:set var="hadChanges" value="true" /> 
     <h2>${cs.msgAnnotated}</h2> 
     <p>by <em>${cs.author}</em></p> 
     <table> 
     <j:forEach var="p" items="${cs.affectedFiles}"> 
      <tr> 
      <td width="10%">${spc}${p.editType.name}</td> 
      <td> 
       <tt>${p.path}</tt> 
      </td> 
      </tr> 
     </j:forEach> 
     </table> 
    </j:forEach> 
    <j:if test="${!hadChanges}"> 
     <p>No Changes</p> 
    </j:if> 
    <br /> 
    </j:if> 
</div> 
+0

Cela semble afficher uniquement les modifications sur la version actuelle. Je souhaite que la modification soit appliquée à plusieurs générations, agrégées ensemble. – IanWatson