Добавление ошибок в сводку сборки из сценария PowerShell, работающего в VSTS.

В VSTS я использую задачу PowerShell для запуска одного из моих скриптов. Скрипт содержит следующее:

Write-Error 'error 1'
Write-Error 'error 2'

Поскольку командлет Write-Error пишет в stderr, об этих сообщениях сообщается в веб-интерфейсе VSTS:

ошибки

Я хотел бы улучшить этот вывод. Улучшения, которые я ищу, это:

  1. Я хотел бы иметь один красный X на ошибку.
  2. Я хотел бы удалить весь шум, т.е. избавиться от строк, начинающихся с «+».

Есть ли другая функция, которую я могу вызвать из своего сценария вместо вызова Write-Error, чтобы добавить ошибку на страницу сводки сборки?

Я видел функцию Write-VstsTaskError но, к сожалению, его можно вызвать только из задачи VSTS. Его нельзя вызвать из моего сценария.


person mabead    schedule 10.02.2016    source источник


Ответы (3)


Рекомендуемый способ сделать это — использовать команды ведения журнала VSO, как описано в проблеме GitHub ниже.

Например:

Write-Host "##vso[task.logissue type=warning;]Test warning"
Write-Host "##vso[task.logissue type=error;]Test error"
person Matt Brooks    schedule 03.04.2016
comment
Важно отметить, что добавление ошибок с помощью команд ведения журнала не помечает шаг сборки как неудачный. Следовательно, нужно выдать исключение (или войти в stderr), когда он зарегистрирует хотя бы одну ошибку с помощью команд ведения журнала. - person mabead; 04.04.2016
comment
Хороший момент относительно сбоя шага сборки. Я исправил опечатку в первом URL. - person Matt Brooks; 04.04.2016
comment
Это то, что мне нужно, но с использованием TFS 2013. Есть ли способ добиться этого с 2013? - person lstanczyk; 31.08.2017

После множества проб и ошибок я смог решить проблему №1. Сборка VSTS отображает красный крестик для каждой записи в stderr, разделенной записью в stdout. Итак, если я изменю свой сценарий на следующее:

Write-Error 'Error 1'
Write-Host '***'
Write-Error 'Error 2'
Write-Host '***'

Теперь у меня есть один красный X на ошибку, но у меня все еще есть лишний шум (строки, начинающиеся с «+»).

person mabead    schedule 10.02.2016

В сборке с Visual Studio 2013 я протестировал эти два подхода и сработал:

[Console]::Error.WriteLine("An error occurred.")

$host.ui.WriteErrorLine("Other way to show an error.")

Надеюсь, это поможет.

person Rogerson Nazário    schedule 31.08.2017