Azure devops 失败后自动重新部署

Azure devops 失败后自动重新部署,azure-devops,azure-pipelines-release-pipeline,Azure Devops,Azure Pipelines Release Pipeline,我使用VSTS在每次提交到特定分支后自动发布我的应用程序。任务基本上是: 重新创建数据库 如果第一次确定->部署API和Web 如果确定->部署并重新启动一些windows服务 在第二步中,有时会发生由于某些连接或IIS问题而导致部署失败的情况。这不是真的 我不想在这里详细说明错误的本质。发生这种情况时,我所要做的就是转到VST并单击“在失败的任务上重新部署” 但我想知道是否有一种方法可以自动化这个过程。所以在部署失败和特定错误的情况下,我想触发 自动重新部署。在VST中是否有这样做的方法?有什

我使用VSTS在每次提交到特定分支后自动发布我的应用程序。任务基本上是:

重新创建数据库 如果第一次确定->部署API和Web 如果确定->部署并重新启动一些windows服务 在第二步中,有时会发生由于某些连接或IIS问题而导致部署失败的情况。这不是真的 我不想在这里详细说明错误的本质。发生这种情况时,我所要做的就是转到VST并单击“在失败的任务上重新部署”

但我想知道是否有一种方法可以自动化这个过程。所以在部署失败和特定错误的情况下,我想触发
自动重新部署。在VST中是否有这样做的方法?有什么想法可以实现吗?

有两个选项可以帮助您重新部署第二个任务/环境

选项1:添加与第二个任务相同的任务,并在前一个任务失败时执行以下任务 如果要重复三次,可以在第二个环境中添加与第二个任务相同的三个任务。对于您添加的三个任务,仅当“运行此任务”选项的上一个任务失败时设置。因此,它可以重新部署不超过三倍的第二个任务/环境

选项2:在第二个环境中的第二个任务之后添加PowerShell任务,如果第二个任务失败,请再次部署第二个环境 在PowerShell任务中,您应该执行以下操作

1.通过以下方式获取当前发布日志:

对于releaseID,可以通过预定义变量$Release.releaseID获取值

2.获取第二个任务状态

在RESTAPI响应中,您可以通过搜索任务显示名称来检查第二个任务,并获取任务的状态。如以下示例所示,任务显示名称为PowerShell脚本,任务为失败状态值为失败

3.如果第二个任务失败,则通过以下方式再次部署第二个环境:


对于environmentID,您还可以通过每个定义变量$Release.environmentID进入。

您只有一个环境还是多个环境?您想重新部署失败的任务还是整个环境?@Marina MSFT我手动执行的是转到VSTS并单击任务上的重新部署通常是第二个失败的任务。然后VSTS将再次从第二个任务重新启动,并在成功后继续执行任务3。我想自动化的只是这个重新部署失败后的点击。@marinamsft啊,是的!每个任务都在不同的环境中。因此,基本上我所说的任务是环境试图在同一阶段内部署第二个环境似乎很麻烦。VS402964:不允许将阶段从状态“InProgress”转换为状态“InProgress”。
GET https://account.vsrm.visualstudio.com/Git2/_apis/Release/releases/{releaseID}
{
    "id": 5,
    "timelineRecordId": "ae95a8be-6259-466d-ba8d-93711a922237",
    "name": "PowerShell Script",
    "dateStarted": "2017-10-03T02:43:25.757Z",
    "dateEnded": "2017-10-03T02:43:29.073Z",
    "startTime": "2017-10-03T02:43:25.757Z",
    "finishTime": "2017-10-03T02:43:29.073Z",
    "status": "failed",
    "rank": 4,
    "issues": [
       {
           "issueType": "Error",
           "message": "agit : The term 'agit' is not recognized as the name of a cmdlet, function, script file, or operable program. Check \r\nthe spelling of the name, or if a path was included, verify that the path is correct and try again.\r\nAt D:\\a\\_temp\\0a858f5c-894b-4944-bed4-54b3cbed48bc.ps1:1 char:1\r\n+ agit\r\n+ ~~~~\r\n    + CategoryInfo          : ObjectNotFound: (agit:String) [], CommandNotFoundException\r\n    + FullyQualifiedErrorId : CommandNotFoundException\r\n \r\n"
       },
       {
           "issueType": "Error",
           "message": "Process completed with exit code 0 and had 1 error(s) written to the error stream."
       }
    ],
   "task": {
      "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
      "name": "PowerShell",
      "version": "1.2.3"
   },
   "agentName": "Hosted Agent",
   "logUrl": "https://account.vsrm.visualstudio.com/f7855e29-6f8d-429d-8c9b-41fd4d7e70a4/_apis/Release/releases/300/environments/374/tasks/5/logs?releaseDeployPhaseId=344"
}
PATCH https://account.vsrm.visualstudio.com/{project}/_apis/Release/releases/{releaseID}/environments/{environmentID}?api-version=4.0-preview.4