У меня есть питон скрипт (myscript.py) следующим образом:Дженкинс не печатает вывод питон скрипт в консоли
#!/bin/python
import os
import optparse
import subprocess
import sys
sys.stdout.flush()
print("I can see this message on Jenkins console output")
cmd="sshpass -p 'xxx' ssh [email protected] 'cmd /c cd C:\stage && test.bat'"
retval=subprocess.call(cmd,shell=True)
print retval
В Дженкинс, у меня есть работа с выполнить оболочку следующим образом:
#!/bin/sh
./myscript.py
Проблема: Консоль Jenkins показывает только «Я вижу это сообщение на выходе консоли Jenkins». Если есть какой-либо вывод из вызова подпроцесса, он не выводит его на консоль.
Если я замаскирован сервером A и запускаю ту же команду (./myscript.py) в оболочке, я могу видеть вывод вызова подпроцесса.
Как распечатать этот вывод вызова подпроцесса на консоли Jenkins?
FYI: Как вы можете видеть из моей команды, вызов подпроцесса запускает пакетный файл на окнах; Jenkins работает на Linux; Существует SSH установка между двумя машинами ..
Edit: Мой test.bat выглядит следующим образом:
echo off
RMDIR /S /Q C:\Test
IF %ERRORLEVEL% NEQ 0 (
ECHO Could not delete
EXIT /b %ERRORLEVEL%
)
если я запускаю этот пакетный файл локально на сервере окон, он возвращает 1 (потому что я держу файл открытым в тестовой папке)
Но когда скрипт python вызывает этот командный файл, используя вызов подпроцесса, все, что я получаю, это Zero for retval.
Почему это и как исправить это? Если я смогу зафиксировать правильный retval, я могу сделать работу Jenkins неудачной.
Редактировать 12/12: Helllo !! Кто-нибудь! Кто-то! Помогите!
Я подозреваю, что ваша проблема заключается в использовании sshpass. Это создаст собственный tty, чтобы обмануть ssh, чтобы позволить интерактивный сеанс. Он также устанавливает код возврата, основанный на успехе соединения, а не результат выполнения команды внутри ssh. Можете ли вы попробовать использовать ssh напрямую, вместо этого разрешаете публичный ключ? –
ok .. попробуй сейчас – user1164061
Не повезло! Я создал открытый ключ и избавился от ssh pass. Я все равно получаю тот же результат ... :-( – user1164061