如何使用以前不存在的值更新Jenkins config.xml

时间:2019-01-14 19:26:02

标签: jenkins ant

我们从詹金斯1.609升级到2.106。发布时,我们希望以1(自项目开始以来的版本数)开始作业内部版本号。我们使用ant脚本来更新config.xml文件,但是在Jenkins 2中不起作用。自v 1.0起,XML文件的布局发生了一些变化。

虽然我认为我不再想执行“替换”(因为没有要替换的内容,并且我尝试了此方法的多种变体),但我不确定要使用的语法和参数在此处放置一个值“ 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>

2.0 config.xml的不同之处在于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文件。

0 个答案:

没有答案