Как вы получаете грубую ошибку, чтобы вернуться на VSTS размещенный агент сборки - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь выполнить задачи grunt через пакетный скрипт и вызываю grunt следующим образом:

call npm install
call npm install grunt

Однако, если это возвращает ошибку, то сборка VSTS на размещенном агенте сборки все еще показываеткак успешный (даже с зарегистрированной ошибкой в ​​сценарии).У кого-нибудь есть хорошие примеры того, как заставить его возвращать ошибку в сборку?

Я смотрел на использование powershell, но пока безрезультатно, с кодом следующим образом:

В gruntfile.js:

grunt.initConfig({
    shell: {
        ps: {
            options: {
                stdout: true
            },
            command: 'powershell ../../errors.ps1'
        }
    }
});

grunt.registerTask('default',  function() {
    try {
                    grunt.task.run([
                    'less:desktop',
                    'less:tablet',
                    'less:smartphone',
                    'less:homepage_desktop',
                    'less:homepage_tablet']);
    } catch(e) {
                    grunt.task.run([
                    'shell:ps']);
                    throw e;

    }
}); 

В errors.ps1:

$URL_Format_Error = [string]"Error found in running grunt. Please investigate grunt logs"
    Write-Error $URL_Format_Error -ErrorAction:Stop
    return

Код, выполняемый в обработчике исключений, никогда не вызывается, и выводится предупреждение с ошибкой компиляциив файле .less, но PowerShell никогда не запускается.Есть ли способ, которым я могу подключиться к предупреждению и затем запустить свой powershell?

В качестве альтернативы, когда я пытаюсь добавить задачу grunt в определение сборки VSTS после пакетного сценария для запуска установки NPMЯ просто продолжаю получать следующую ошибку (даже после просмотра успешной установки NPM в пакетном скрипте):

Неустранимая ошибка: невозможно найти локальное ворчание

Следовательно,Я не уверен, смогу ли я выполнить задачу grunt в отдельной задаче, определяемой сборкой VSTS, если я использую размещенный агент сборки.Я склонен думать, что это сработало бы, только если бы у меня был свой собственный сервер сборки.

1 Ответ

0 голосов
/ 11 сентября 2018

Просто попробуйте использовать Write-Error в сочетании с exit 1 в вашем скрипте.

 Write-Error ("Some error")
 exit 1

Ссылка на эту ветку: Как завершить сборку из задачи PowerShell в TFS 2015

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...