Настраиваемая задача ServerGate - «Agent.JobStatus» не разрешается - PullRequest
1 голос
/ 22 июня 2019

Я создаю новую пользовательскую задачу Azure DevOps, которая запускается на «ServerGate». Я настроил свой HttpExecution для этой задачи и намереваюсь использовать его для PRE и POST Deployment Approval Gateway. Когда это выполняется для шлюза утверждения после развертывания, я хотел бы отправить статус задания (т. Е. Успешно, неудачно и т. Д.) В мой 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)" .... в то время как я могу преобразовать "имя" в фактическое имя определения выпуска в процессе исполнения.

Я ожидал получить надлежащее разрешение состояния на выходах POST, которое будет «Успешным» и т. Д., Как указано в документации, указанной выше.

1 Ответ

0 голосов
/ 25 июня 2019

Я создал пользовательское задание для проверки этой проблемы.Я могу воспроизвести проблему, даже вместо этого я использовал AGENT_JOBSTATUS.Это задание запускается на сервере или ServerGate, его можно использовать только в задании без агента, заданию сервера не требуется агент или любые целевые компьютеры, поэтому на переменную Agent.JobStatus нельзя ссылаться в задании без агента,Вы можете попытаться использовать Конечная точка службы для публикации статуса задания агента во внешней службе.

...