Как передать код возврата из Python 3.X?

Добрый день!
Подскажите, пожалуйста, как получить код возврата из Python 3.4?
Собственно, питоноскрипт запускается из командной строки CI Jenkins, в который в последствии нужно передать результат SUCCESS он же exit 0, либо FAIL он же exit 1 для корректной пометки сборки (BUILD) соответствующим статусом успех, либо ошибка. Как сделать, что-то не соображу?
try...except не катят, намеренно ошибку пробовал воспроизводить, не получается.
Использование subprocess, и т.п. средств для запуска cmd, либо что-то типа:
raise SystemExit(1)
так же не помогают...
До этого написанный скрипт отрабатывал без вопросов по первому исключению и все билды помечались как надо, а тут скриптик простенький строк на 20, все работает, но билды все успешные почему-то.
И как передать значение переменной errorlevel в результат билда, что бы использовать что-то типа этого:
Set errorlevel=%ResultFromPython%
if not errorlevel 0 exit 1
?
  • Вопрос задан
  • 2001 просмотр
Решения вопроса 1
@lnl Автор вопроса
Вопрос решен, косяк Jenkins... Python выдает правильный код возврата, а вот Jenkins напрочь отказывается его воспринимать. Решил вопрос присвоением переменной значения 0/1 из временного файла, который впоследствии затирается. Если 1, то exit 1, иначе exit 0
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
mututunus
@mututunus
Backend developer (Python, Golang)
import sys
sys.exit(1)
Ответ написан
Sly_tom_cat
@Sly_tom_cat
.
$ cat exit.py 
#!/usr/bin/env python3
if __name__ == '__main__':
  exit(1)

$ python3 exit.py 
$ echo $?
1
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы