【问题标题】:VSTS Devops deployed failed rollback to previous version with web and database?VSTS Devops 使用 Web 和数据库部署失败回滚到以前的版本?
【发布时间】:2019-06-03 04:10:53
【问题描述】:

部署失败时自动回滚到以前的版本(Web 和数据库)

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

这个方法对吗?如果有其他方法?

谢谢

【问题讨论】:

    标签: .net azure-devops devops


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      我认为您遗漏了其余代码。您需要添加何时执行回滚的逻辑:

      if ($taskproperty.Status -eq  "failed")
      {
            $statuscode = "$($taskproperty.Status)"
            Write-Verbose -Verbose $statuscode
      }
      } 
      

      【讨论】:

      • 如何添加回滚逻辑并告诉任何逻辑?
      猜你喜欢
      • 1970-01-01
      • 2019-03-14
      • 2010-10-04
      • 1970-01-01
      • 2018-08-25
      • 1970-01-01
      • 2011-12-30
      • 2019-10-11
      • 2021-12-12
      相关资源
      最近更新 更多