Сбой конвейера, когда ошибка записана, но конвейер пройден - PullRequest
0 голосов
/ 21 января 2020

Я ищу способ сбить сборку конвейера, когда в журнале регистрируются какие-либо ошибки. Я обнаружил много ситуаций (npm, модульное тестирование и др.), Когда возникает исключение / ошибки / проблемы, вызывающие в конвейере запись и отображение ошибок, но построение конвейера приводит к УСПЕХУ (никто не чувствует необходимости проверять детали, потому что конвейер пройден и показывает зеленый УСПЕХ и в этом проблема).

Три задачи ('script', 'Bash', 'Powershell') имеют опцию "failOnStderr" (значение true делает шаг неудачным, когда что-либо записывается в stderr ), который, кажется, является точным решением этой проблемы, но другие задачи (такие как 'vstest', 'build build' и другие) не имеют.

Схема Yaml для 'задачи' не предоставляет возможность выполнить задачу когда регистрируется ошибка.

Спасибо за помощь:]

1 Ответ

1 голос
/ 22 января 2020

Для этой проблемы есть некоторые сценарии ios, которые могут вызвать это. Здесь я разбираюсь с несколькими ситуациями и обходными путями:

Npm: это означает, что ваш скрипт «проглатывает» код выхода и завершает работу в обычном режиме. вам нужно добавить в ваш скрипт проверку, которая будет перехватывать код выхода вашего npm run lint и выходить с тем же кодом выхода, что-то вроде:

- script: |
    npm install
    npm run lint # Mapped to `eslint src` in package.json
    if [ $? -ne 0 ]; then
        exit 1
    fi
    npm run slint # `stylelint src` in package.json
    npm run build

Пожалуйста, обратитесь к этому случаю для подробностей.

Тест : Вы можете попытаться добавить failTaskOnFailedTests: true во входные данные задачи, например:

- task: PublishTestResults@2
  inputs:
    testRunner: VSTest
    testResultsFiles: '**/*.trx'
    failTaskOnFailedTests: true

Пожалуйста, обратитесь к этому случай для деталей.

Дефекты в версии самой задачи также могут вызывать это явление. В этом случае существует либо круговая символическая ссылка, либо слишком много файлов в исходном пути, из-за чего помощник, просматривающий файлы, не удался. Баг помощник сообщил об успехе. Эта проблема закончилась обновлением Maven task более новой версией библиотеки задач.

Кроме того, если для запуска конвейера сборки вы используете агент с собственным размещением, более ранние версии агента также могут вызывать эту ситуацию. , Решение состоит в том, чтобы обновить агент до последней версии. Подробнее см. this .

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

...