我正在创建一个新的将在"ServerGate“上运行的Azure DevOps自定义任务。我已经为此任务设置了我的HttpExecution,并打算将其用于部署前和部署后审批入口。当对部署后审批入口执行此操作时,我希望将作业的状态(即成功、失败等)发送到我的API。我想我可以只使用"Agent.JobStatus“变量,但这不能在ServerGate中解析。
是否有其他变量可以用来访问当前阶段的状态(即成功?)?
有关Agent.JobStatus的变量的详细信息:https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=classic
关于创作服务器门的详细信息,我一直在关注:https://github.com/microsoft/azure-pipelines-tasks/blob/master/docs/authoring/servertaskauthoring.md
我的ServerGate示例:
"execution": {
"HttpRequest": {
"Execute": {
"EndpointId":"",
"EndpointUrl": "https://my-gate.com/ready",
"Method": "POST",
"Body": "{\"status\":\"$(Agent.JobStatus)\", \"name\":\"$(Release.ReleaseName)\"}",
"Headers":"{\n\"Content-Type\":\"application/json\"\n}",
"WaitForCompletion":"false",
"Expression": "eq(root['approved'], 'true')"
}
}
}当这个问题在输出中得到解决时,状态只是显示为:"$(Agent.JobStatus)"...虽然我能够将" name“解析为执行中发布定义的实际名称。
我希望收到关于部署后门的正确状态解析为“成功”,等等,正如上面提到的文档中所指出的。
发布于 2019-06-25 16:23:04
我创建了一个自定义任务来测试这个问题。我可以重现这个问题,即使我使用的是AGENT_JOBSTATUS。此作业在服务器或ServerGate上运行,它只能在无代理作业中使用,服务器作业不需要代理或任何目标计算机,因此变量Agent.JobStatus不能在无代理作业中引用。您可以尝试使用Service Endpoint将代理作业状态发布到外部服务。
https://stackoverflow.com/questions/56712021
复制相似问题