Как объединить файл с помощью издателя в 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>
Другие вопросы по тегам