We have a build job that runs a PowerShell task to copy some files
from one server on another network to our backup server.
I am trying to figure out a way to accomplish the following:
When the powershell job fails, such as the case in the log copied
below, I want the job to fail. But when it gracefully ends, such as
there are no files to move, the job should be marked a success.
I think I can use the successExitCodes but I am not real sure the
values to place in it based on my requirements.
Any help would be appreciated. Thanks.
====================================================================
<cruisecontrol project="Server Backup Retrieval">
<request source="SERVERNAME" buildCondition="ForceBuild">Build
(ForceBuild) triggered from SERVERNAME</request>
<parameters>
<parameter name="$CCNetArtifactDirectory" value="C:\Program Files
(x86)\CruiseControl.NET\server\Server Backup Retrieval\Artifacts" />
<parameter name="$CCNetBuildCondition" value="ForceBuild" />
<parameter name="$CCNetBuildDate" value="2011-08-22" />
<parameter name="$CCNetBuildTime" value="20:32:25" />
<parameter name="$CCNetFailureUsers"
value="System.Collections.ArrayList" />
<parameter name="$CCNetIntegrationStatus" value="Unknown" />
<parameter name="$CCNetLabel" value="1.0.0 Build 107" />
<parameter name="$CCNetLastIntegrationStatus" value="Failure" />
<parameter name="$CCNetListenerFile" value="C:\Program Files
(x86)\CruiseControl.NET\server\Server Backup Retrieval\Artifacts
\Server Backup Retrieval_ListenFile.xml" />
<parameter name="$CCNetModifyingUsers"
value="System.Collections.ArrayList" />
<parameter name="$CCNetNumericLabel" value="107" />
<parameter name="$CCNetProject" value="Server Backup Retrieval" />
<parameter name="$CCNetProjectUrl" value="" />
<parameter name="$CCNetRequestSource" value="SERVERNAME" />
<parameter name="$CCNetUser" value="" />
<parameter name="$CCNetWorkingDirectory" value="C:\work
\ServerBackupRetrieval" />
</parameters>
<modifications />
<integrationProperties>
<CCNetArtifactDirectory>C:\Program Files (x86)\CruiseControl.NET
\server\Server Backup Retrieval\Artifacts</CCNetArtifactDirectory>
<CCNetBuildCondition>ForceBuild</CCNetBuildCondition>
<CCNetBuildDate>2011-08-22</CCNetBuildDate>
<CCNetBuildTime>20:32:25</CCNetBuildTime>
<CCNetFailureUsers>
<user>USER</user>
</CCNetFailureUsers>
<CCNetIntegrationStatus>Failure</CCNetIntegrationStatus>
<CCNetLabel>1.0.0 Build 107</CCNetLabel>
<CCNetLastIntegrationStatus>Failure</CCNetLastIntegrationStatus>
<CCNetListenerFile>C:\Program Files (x86)\CruiseControl.NET\server
\Server Backup Retrieval\Artifacts\Server Backup
Retrieval_ListenFile.xml</CCNetListenerFile>
<CCNetModifyingUsers />
<CCNetNumericLabel>107</CCNetNumericLabel>
<CCNetProject>Server Backup Retrieval</CCNetProject>
<CCNetProjectUrl />
<CCNetRequestSource>SERVERNAME</CCNetRequestSource>
<CCNetWorkingDirectory>C:\work\ServerBackupRetrieval</
CCNetWorkingDirectory>
<LastIntegrationStatus>Failure</LastIntegrationStatus>
<LastSuccessfulIntegrationLabel>1.0.0 Build 106</
LastSuccessfulIntegrationLabel>
<LastModificationDate>8/21/2011 8:32:29 PM</LastModificationDate>
</integrationProperties>
<build date="2011-08-22 20:32:25" buildtime="00:00:03" error="true"
buildcondition="ForceBuild">
<buildresults>
<message>Start time: 8/22/2011 9:06:20 PM</message>
<message>======================================================</
message>
<message>Log destination: C:\backups\backup_logs\</message>
<message>======================================================</
message>
<message>======================================================</
message>
<message>Log file name: SERVERNAME_DATE.log</message>
<message>======================================================</
message>
<message>======================================================</
message>
<message>Path to .ready files: \\SERVERNAME\Backup\ready.2.archive\</
message>
<message>======================================================</
message>
<message>Script duration: 0 Seconds</message>
</buildresults>
</build>
</cruisecontrol>