psakeスクリプトでは、コンパイルの前にチェックアウトのアセンブリファイルを実行しています。 コンパイルタスクが正常に完了すると、アセンブリがコピーされ、チェックインタスクがアセンブリをコミットします。psakeで障害が発生した場合のpostactionを実行するには?
この方法で問題が発生するのは、コンパイルステップが停止されていれば、ファイルはチェックアウトされたままになります。
コンパイルタスクが失敗した場合は、ファイルのチェックアウトを取り消す別のタスクを実行したいと思います。
task CheckOutFiles -description "Checkout the files" `
-precondition { $OutputFiles -ne $null } `
-action {
foreach($file in $OutputFiles) {
exec { Checkout-File -FilePath $file }
}
}
task Compile `
-depends Clean `
-description "Compile the code" `
-requiredVariables solutionFile, buildConfiguration `
{
Write-Host "Building solution $solutionFile" | Out-Null
Assert (Test-Path $solutionFile) "SolutionFile $SolutionFile is not found "
Exec { msbuild $SolutionFile "/t:build" "/p:Configuration=$buildConfiguration" }
}
task UndoCheckOutFiles -description "UndoCheckout the files" `
-precondition { $OutputFiles -ne $null } `
-action {
foreach($file in $OutputFiles) {
exec { UndoCheckout-File -FilePath $file }
}
}
コンパイルタスクでは、失敗した場合、私はUndoCheckoutFilesタスクを実行できますか?