Есть ли особый способ запуска исполняемых файлов в Jenkins? - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть супер простая задача, которую Дженкинс должен сделать для меня: Запустите исполняемый файл, скомпилированный Дженкинсом, после сборки.

Звучит просто.

Однако, неважно, что Я пробовал за последние полдня запустить программу, правильно. В настоящее время абсолютное лучшее, что я могу получить - это пустой вывод запуска исполняемого файла, что никогда не делает программа. При запуске он всегда выводит.

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

echo bat(returnStdout: true, script: "cmd.exe /c program.exe")
echo bat(returnStdout: true, script: "cmd.exe /c programRunner.bat")
echo bat(returnStdout: true, script: "call program.exe")
echo bat(returnStdout: true, script: "call programRunner.bat")
echo bat(returnStdout: true, script: "program.exe")
echo bat(returnStdout: true, script: "programRunner.bat")

ПРИМЕЧАНИЕ: programRunner.bat просто вызывает program.exe одним из различных методов, описанных выше, но написанных соответствующим образом для файла .bat. При запуске вручную он ожидал вывода, как program.exe. Но при запуске через Jenkins выход не выводится.

Все они не сообщают об ошибках (при замене действительным именем программы) - поэтому дело не в том, что файл отсутствует. Я попытался добавить случайный символ к имени, и он ошибается, потому что не может найти этот файл (потому что это выдуманное имя файла). ТАК, он находит файл и на самом деле пытается запустить. Но нет абсолютно никакого вывода ... Я попытался передать вывод в файл (> ..\..\programOutput.txt 2>&1), и это в конце концов пустой, но созданный файл.

Я подозреваю, что он думает, что он пропускает некоторые зависимость. Но я не понимаю, почему я могу нормально запустить его локально и на подчиненной машине, чтобы получить ожидаемый результат. Он имеет необходимые зависимости в той же папке, что и исполняемый файл (это шаг в процессе сборки, который мы имеем, чтобы скопировать все необходимые .dll).

Любая помощь будет принята с благодарностью. Дайте мне знать, если вам нужно что-то прояснить.

Опять же, это звучит просто, и должно быть, но у меня самое сложное время. Я не совсем уверен, что попробовать дальше, если честно. Я не получаю выходной! Это очень трудно отлаживать без вывода ...

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