TFSビルドにPowerShellステップがあり、エラーストリームにエラーを書き込んで、ビルドに失敗します。エラーを無視して、成功したまま続行する手順を実行してください。
プロセスは終了コード0で完了し、エラーストリームに1つのエラーが書き込まれました。
TFSでContinue on error
オプションを設定しようとしましたが、これにより「ビルドが部分的に成功しました」ステータスになりますが、必要なのは「成功」することです。
また、エラーを生成する行の最後に2>&1 > output.txt
を追加しようとしましたが、エラーはTFS出力に書き込まれ、テキストファイルにキャプチャされません。
私が実行しているコマンドは、TFS 2015 PowerToolsのNew-TfsChangeset
コマンドレットです。
PowerShellスクリプト構成のFail on Standard Errorのチェックを外し、lastexitcodeを記述してタスクを渡すことができます。
標準エラーの失敗
これがtrueの場合、エラーがエラーパイプラインに書き込まれるか、データが標準エラーストリームに書き込まれると、このタスクは失敗します。それ以外の場合、タスクは$ LASTEXITCODEと終了コードのみに依存して失敗を判別します。
次に、PowerShellまたはVSTSタスクコマンドを使用して、エラーまたは警告を出力できます。
Write-Warning “warning”
Write-Error “error”
Write-Host " ##vso[task.logissue type=warning;]this is the warning"
Write-Host " ##vso[task.logissue type=error;sourcepath=consoleapp/main.cs;linenumber=1;columnnumber=1;code=100;]this is an error "
VSTSタスクコマンドの詳細については、以下を参照してください。 ロギングコマンド
次のスクリプトは、VSTSで機能しました。
Write-Host "Running build script..."
&$CAKE_EXE $cakeArguments 2>&1 | Write-Host
コマンドに"2>&1 | Write-Host"
を追加して、標準エラーストリームが書き込みホストストリームにルーティングされるようにしました。