могу ли я вызвать сбой, если git слияние обнаружило конфликт или другие проблемы? - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь создать командный файл, который автоматически объединяет ветку в master. В моем файле летучей мыши у меня есть

git merge %1 -m "Merge to master [skip ci]"

Чтобы проверить мой командный файл, я передал поддельную ветвь, которой не существует, и результат:

merge: test1 - not something we can merge

Затем перешел к следующему command.

Я хочу, чтобы если слияние не сработало (либо из-за неправильного имени ветки, либо из-за конфликта), командный файл должен выдать ошибку и выйти. Итак, мой azure конвейер разработчиков будет знать, что что-то не так, и он выйдет из строя.

Возможно ли это?

1 Ответ

0 голосов
/ 18 июня 2020

Возможно. Вы можете использовать переменную среды %ERRORLEVEL% в системе windows для проверки кодов возврата в командах сценария.

Переменная среды %ERRORLEVEL% содержит код возврата или последний уровень ошибки в пакете файл, который представляет собой последние коды ошибок от последней выполненной команды.

Таким образом, вы можете добавить IF %ERRORLEVEL% NEQ 0 EXIT /B 1 после команды git merge. См. Ниже:

git merge %1 -m "Merge to master [skip ci]"

IF %ERRORLEVEL% NEQ 0 EXIT /B 1

... other commands

Когда вышеуказанные команды слияния git завершились неудачно, значение %ERRORLEVEL% не будет равно 0, и сценарии завершатся с кодом 1, что приведет к сбою вашего конвейера, а следующие сценарии не будут

Проверьте этот документ для получения дополнительной информации.

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