首页 > 解决方案 > VSTS Devops 使用 Web 和数据库部署失败回滚到以前的版本?

问题描述

Devops 部署失败时自动回滚到之前的版本(Web & Database)

我已经在您的帐户中安装了发布管理实用程序任务扩展,您将在任务中看到一个名为“<strong>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   
} 

这种方法正确吗?如果有其他方式?

谢谢

标签: .netazure-devopsdevops

解决方案


该方法是正确的。正如文档中提到的:

“Release_Tasks”环境变量应由任务设置,以使部署作业中每个任务的执行状态可用于powershell脚本。

我想知道你是否添加了变量System.Debug来输出调试信息。如果将发布管道的 System.Debug 设置为 ture,则可以在任务运行时找到日志。

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之类的调试信息。你能检查任务的日志吗?我不确定不在您的帖子中工作的含义。这是否意味着发布失败或回滚 PowerShell 任务没有按您的意愿工作?请详细说明信息。


推荐阅读