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>