How to Fail a Build
When you run a command-line program, you need to check the $LastExitCode
PowerShell variable to determine if the command-line program failed. If the
$LastExitCode is non-zero that usually indicates a failure condition and you
should throw a PowerShell exception so that your build script will fail
appropriately.
Here is an example:
task default -depends TaskA
task TaskA {
  #use cmd.exe and the DOS exit() function to simulate a failed command-line execution
  "Executing command-line program"
  cmd /c exit (1) 
}
The output from the above build script:
Executing task: TaskA
Executing command-line program
Build Succeeded!
----------------------------------------------------------------------
Build Time Report
----------------------------------------------------------------------
Name   Duration
----   --------
TaskA  00:00:00.1059589
Total: 00:00:00.2233691
The above build script will always succeed, even though we know the build should have failed
Here is an example that does fail correctly:
task default -depends TaskA
task TaskA {
    #use cmd.exe and the DOS exit() function to simulate a failed command-line execution
    "Executing command-line program"
    cmd /c exit (1) 
    if ($LastExitCode -ne 0)
    {
      throw "Command-line program failed"
    }
}
A simpler option is to use the psake "exec" function to execute command-line programs
The following is an example:
task default -depends TaskA
task TaskA {
  #use cmd.exe and the DOS exit() function to simulate a failed command-line execution
  "Executing command-line program"
  exec { cmd /c exit (1) }
}