Дженкинс - Что изменилось между двумя сборками?

У меня есть конвейер сборки Jenkins с ручной задачей развертывания в среде QA.

Когда проект вызывается, я хочу иметь возможность агрегировать журнал изменений от текущей сборки до последней сборки, которая была развернута в среде контроля качества.

Я вижу способ сделать это через журнал изменений. Однако, похоже, нет простого способа получить эту информацию, а затем агрегировать ее.

Любые идеи о том, как достичь этой цели?


person IanWatson    schedule 25.02.2015    source источник


Ответы (2)


Мы делаем то же самое, но мне не удалось найти какую-либо функциональность плагина Jenkins для достижения этой цели.

Я использовал шаг сборки «Выполнить оболочку» и закодировал необходимые функции в сценарии оболочки. Мы запускаем Jenkins в Linux, если вы используете Windows, вы можете добиться того же, используя шаг сборки «Выполнить пакетную команду Windows».

person Keir    schedule 26.02.2015
comment
Не могли бы вы указать мне правильное направление, как добиться этого через оболочку? - person IanWatson; 26.02.2015

Нечто подобное может сделать плагин электронной почты. Это позволяет очень подробно настраивать электронные письма, отправляемые Jenkins, в том числе сценарии содержимого электронной почты.

Предоставленный образец на https://github.com/jenkinsci/email-ext-plugin/blob/master/src/main/resources/hudson/plugins/emailext/templates/html-with-health-and-console.jelly показывает, как набор изменений может быть повторен и указан в итоговом уведомлении по электронной почте:

<!-- 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>
person centic    schedule 17.03.2015
comment
Похоже, это показывает только изменения в текущей сборке. Я хочу, чтобы набор изменений для нескольких сборок был объединен вместе. - person IanWatson; 23.03.2015