Как объединить файл с помощью издателя в CruiseControl.NET
Я только что начал использовать CruiseControl.NET для небольшого проекта, над которым мы работаем, и у меня возникли проблемы при объединении XML-файла с издателем электронной почты, который запускается после завершения сборки.
Из того, что я прочитал, мне нужно убедиться, что тег слияния появляется перед регистратором xml, а файл должен существовать в указанном месте, что я и сделал ниже.
<merge>
<files>
<file>C:\CCNet\xxx.xml</file>
</files>
</merge>
<xmllogger />
Файл, в который я пытаюсь объединить, был первоначально результатом вывода NAnt/NUnit, однако, пытаясь диагностировать проблему, я исключил эту возможность, объединив статический файл XML, как указано выше, из известного местоположения и сохранив та же проблема.
Должен ли XML быть в определенном формате? Я имею в виду, не загружать ли XSL-файл, чтобы издатель электронной почты знал, как его отобразить?
Полный сценарий сборки приведен ниже, если это необходимо.
<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
<cb:define MainDir="C:\CCNet"/>
<cb:define WorkingDir="Working"/>
<cb:define ReleaseDir="Release"/>
<cb:define ArtifactsDir="BuildArtifacts"/>
<cb:define StateDir="State"/>
<cb:define name="BuildTask">
<nant>
<baseDirectory>$(MainDir)\$(WorkingDir)\NaturalTalent\$(Build)</baseDirectory>
<executable>C:\Program Files\nant-0.92\bin\NAnt.exe</executable>
<buildFile>default.build</buildFile>
<buildArgs>-D:CCNetReleaseDirectory=$(MainDir)\$(ReleaseDir)\NaturalTalent\$(Build)</buildArgs>
</nant>
</cb:define>
<cb:define name="CommonProjectSettings">
<state type="state" directory="$(MainDir)\$(StateDir)" />
<workingDirectory>$(MainDir)\$(WorkingDir)\NaturalTalent\$(Build)</workingDirectory>
<artifactDirectory>$(MainDir)\$(ArtifactsDir)\NaturalTalent\$(Build)</artifactDirectory>
<sourcecontrol type="git">
<repository>http://cruizecontrol:password@192.168.1.155/gitlab/nga.git</repository>
<workingDirectory>$(MainDir)\$(WorkingDir)\NaturalTalent\$(Build)</workingDirectory>
</sourcecontrol>
<publishers>
<merge>
<files>
<file>C:\CCNet\xxx.xml</file>
</files>
</merge>
<statistics />
<xmllogger />
<artifactcleanup cleanUpMethod="KeepLastXBuilds" cleanUpValue="50" />
<email from="ccnet@nga.net" mailhost="bart" mailport="25" includeDetails="true">
<users>
<cb:Users />
</users>
<groups>
<group name="developers">
<notifications>
<notificationType>Failed</notificationType>
<notificationType>Fixed</notificationType>
</notifications>
</group>
<group name="buildmaster">
<notifications>
<notificationType>Always</notificationType>
</notifications>
</group>
</groups>
<xslFiles>
<file>xsl\header.xsl</file>
<file>xsl\compile.xsl</file>
<file>xsl\modifications.xsl</file>
</xslFiles>
</email>
</publishers>
</cb:define>
<project name="NaturalTalent (TRUNK) - Latest">
<cb:scope Build="Latest">
<cb:define name="Users">
<user name="Anton Felich" group="buildmaster" address="anton.felich@nga.net" />
<!--<user name="David Ames" group="buildmaster" address="david.ames@nga.net" />
<user name="David Ames" group="buildmaster" address="davidames76@gmail.com" />-->
</cb:define>
<cb:CommonProjectSettings />
<tasks>
<cb:BuildTask />
</tasks>
<triggers>
<intervalTrigger name="continuous" seconds="30" buildCondition="IfModificationExists" initialSeconds="5"/>
</triggers>
</cb:scope>
</project>
<project name="NaturalTalent (TRUNK) - Nightly">
<cb:scope Build="Nightly">
<cb:define name="Users">
<user name="Anton Felich" group="buildmaster" address="anton.felich@nga.net" />
<!--<user name="David Ames" group="buildmaster" address="david.ames@nga.net" />-->
<!--<user name="David Ames" group="buildmaster" address="davidames76@gmail.com" />
<user name="HouTan" group="buildmaster" address="hou.tan@nga.net" />
<user name="MickHutchinson" group="buildmaster" address="mick.hutchinson@nga.net" />
-->
</cb:define>
<tasks>
<cb:BuildTask />
<nant>
<baseDirectory>$(MainDir)\$(WorkingDir)\NaturalTalent\$(Build)</baseDirectory>
<executable>C:\Program Files\nant-0.92\bin\NAnt.exe</executable>
<buildFile>default.build</buildFile>
<buildArgs>-D:CCNetReleaseDirectory=$(MainDir)\$(ReleaseDir)\NaturalTalent\$(Build)</buildArgs>
<targetList>
<target>test</target>
</targetList>
</nant>
</tasks>
<cb:CommonProjectSettings />
</cb:scope>
<triggers>
<scheduleTrigger time="23:30" buildCondition="ForceBuild" name="Nightly" />
</triggers>
</project>
</cruisecontrol>
1 ответ
До тех пор, пока xml-файл содержит правильно сформированный xml (что и должно быть)...... "всасывание в файл everything-in-the-build.xml должно нормально работать с задачей.
Так как вы новичок, я думаю, у вас может быть неправильно установлен каталог.
Загрузите этот инструмент:
http://www.voidtools.com/download.php
Найдите свой "xxx.xml"........ и убедитесь, что каталог для задачи правильный.
PS, вы можете использовать подстановочный знак для имени файла (как показано ниже), что я и делаю.
<publishers>
<merge>
<files>
<file>C:\ExactFolderWhereThisFileExists\*RESULTS.xml</file>
</files>
</merge>