Как обновить Jenkins config.xml со значением, которое ранее не существовало - PullRequest
0 голосов
/ 14 января 2019

Мы обновились с Дженкинса 1.609 до 2.106. Когда мы делаем релиз, мы хотим начать номер сборки задания с 1 (Количество сборок с начала проекта). Мы делали это, используя ant-скрипт для обновления файла config.xml, но он не работает в Jenkins 2. Структура файла XML несколько изменилась с версии 1.0.

Хотя я думаю, что больше не хочу делать «замену» (потому что заменять нечего, и я пробовал несколько вариантов этого), я не уверен в синтаксисе и аргументах, которые я хочу использовать здесь, чтобы разместить значение «1» здесь. Я думаю, что я должен использовать Insert, но с какими аргументами.

Это код муравья ...

<target name="replace.builds.all.time">
        <copy file="${BuildConfigPath}" tofile="${BuildConfigPath}.bak" overwrite="true" force="true" />
        <xmltask source="${BuildConfigPath}" dest="${BuildConfigPath}">
          <replace path="/project/buildWrappers/org.jvnet.hudson.tools.versionnumber.VersionNumberBuilder/versionNumberString/text()" withText="${VersionNumberString}"/>
          <replace path="/project/buildWrappers/org.jvnet.hudson.tools.versionnumber.VersionNumberBuilder/oBuildsAllTime/text()" withText="${BuildsAllTime}"/>
        </xmltask>
    </target>

Во второй строке «заменить», где проблема.

Код 1.0 config.xml выглядел следующим образом. Вы можете видеть, что oBuildsAllTime имеет фактическое значение ...

  <buildWrappers>
    <org.jvnet.hudson.tools.versionnumber.VersionNumberBuilder plugin="versionnumber@1.4.1">
      <versionNumberString>${VERSION_NUMBER}</versionNumberString>
      <projectStartDate>1969-12-31 05:00:00.0 UTC</projectStartDate>
      <environmentVariableName>VERSION_NUMBER</environmentVariableName>
      <oBuildsToday>-1</oBuildsToday>
      <oBuildsThisMonth>-1</oBuildsThisMonth>
      <oBuildsThisYear>-1</oBuildsThisYear>
      <oBuildsAllTime>-1</oBuildsAllTime>
      <skipFailedBuilds>false</skipFailedBuilds>
      <useAsBuildDisplayName>true</useAsBuildDisplayName>
    </org.jvnet.hudson.tools.versionnumber.VersionNumberBuilder>
    <EnvInjectPasswordWrapper plugin="envinject@1.92.1">
      <injectGlobalPasswords>true</injectGlobalPasswords>
      <maskPasswordParameters>false</maskPasswordParameters>
      <passwordEntries/>
    </EnvInjectPasswordWrapper>
  </buildWrappers>

Файл config.xml 2.0 отличается тем, что для 0BuildsAllTime нет значения ...

 <buildWrappers>
    <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.9"/>
    <org.jvnet.hudson.tools.versionnumber.VersionNumberBuilder plugin="versionnumber@1.9">
      <versionNumberString>10.1.09.${BUILDS_ALL_TIME}</versionNumberString>
      <projectStartDate>1969-12-31 05:00:00.0 UTC</projectStartDate>
      <environmentVariableName>VERSION_NUMBER</environmentVariableName>
      <environmentPrefixVariable/>
      <oBuildsToday/>
      <oBuildsThisWeek/>
      <oBuildsThisMonth/>
      <oBuildsThisYear/>
      <oBuildsAllTime/>
      <worstResultForIncrement>SUCCESS</worstResultForIncrement>
      <skipFailedBuilds>false</skipFailedBuilds>
      <useAsBuildDisplayName>true</useAsBuildDisplayName>
    </org.jvnet.hudson.tools.versionnumber.VersionNumberBuilder>
  </buildWrappers>

Я хочу иметь возможность вставить новый номер сборки в файл config.xml, используя код ant.

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