部署失败(网络和数据库)时,将自动回滚到以前的版本
我已经在您的帐户中安装了 Release Management Utility 任务扩展程序,您会在该任务中看到一个名为“ Rollback powershell ”的任务
我尝试使用下面的“回滚PowerShell”代码,但不起作用。
try
{
$jsonobject = ConvertFrom-Json $env:Release_Tasks
}
catch
{
Write-Verbose -Verbose “Error parsing Release_Tasks environment variable”
Write-Verbose -Verbose $Error
}
foreach ($task in $jsonobject | Get-Member -MemberType NoteProperty)
{
$taskproperty = $jsonobject.$($task.Name) | ConvertFrom-Json
Write-Verbose -Verbose “Task $($taskproperty.Name) with rank $($task.Name) has status $($taskproperty.Status)”
// Perform rollback action required in case $task.Name has status failed
}
此方法正确吗?还有其他方法吗?
谢谢
答案 0 :(得分:0)
该方法是正确的。如文档所述:
“ Release_Tasks”环境变量应由任务设置为 部署作业中每个任务的执行状态 适用于Powershell脚本。
我想知道您是否添加了变量System.Debug来输出调试信息。如果将System.Debug设置为发布管道的对象,则在任务运行时可以找到日志。
try
{
Write-Verbose -Message "1111111111111111111111111111111111111111111111111"
Write-Verbose -Message “$env:Release_Tasks”
Write-Verbose -Message "2222222222222222222222222222222222222222222222222"
$jsonobject = ConvertFrom-Json $env:Release_Tasks
Write-Verbose -Message "3333333333333333333333333333333333333333333333333"
}
catch
{
Write-Verbose -Verbose “Error parsing Release_Tasks environment variable”
Write-Verbose -Verbose $Error
}
foreach ($task in $jsonobject | Get-Member -MemberType NoteProperty)
{
$taskproperty = $jsonobject.$($task.Name) | ConvertFrom-Json
Write-Verbose -Verbose “Task $($taskproperty.Name) with rank $($task.Name) has status $($taskproperty.Status)”
// Perform rollback action required in case $task.Name has status failed
}
您将获得调试信息,例如Log Info。您可以检查任务日志吗?我不确定在您的帖子中不工作的含义。这是否表示发行失败或Rollback PowerShell任务没有按您期望的方式工作?请详细说明信息。
答案 1 :(得分:0)
我认为您缺少其余的代码。您需要添加执行回滚的逻辑:
if ($taskproperty.Status -eq "failed")
{
$statuscode = "$($taskproperty.Status)"
Write-Verbose -Verbose $statuscode
}
}