Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Jenkins не запускает баш команду внутри питон скрипта.


(Andrey Kim) #1

Есть питон скрипт. Там выполняются тесты с вебдрайвером, а потом вызывается команда

subprocess.check_output('/usr/bin/php -d safe_mode=0 /console/update.php', shell=True)

которая должна быть исполнена на сервере и выполнить обновление. Скрипт должен подождать пока эта команда выполнится и затем пойти дальше.

Проблема в том что если этот скрипт запускать через консоль сервера, все срабатывает отлично. Если скрипт гонится через jenkins, то вышеуказанная команда не срабатывает, но никакого аутпута нет, чтобы точно выявить проблему.

Как это можно исправить?


(Ilya Pas2shkov) #2

Я бы сразу начал проверять пути к файлам и права на них, ибо в консоли и у jenkins’а они разные.


(Andrey Kim) #3

Спасибо, сейчас попробую.


(Andrey Kim) #4

Решил проблему, напишу может кому будет полезно.

В /etc/sudoers дописал:

%jenkins ALL=NOPASSWD: ALL

А в коде добавлено sudo:

subprocess.check_output('sudo /usr/bin/php -d safe_mode=0 /console/update.php', shell=True)

Команда не хотела работать потому что нужны были права как и писал b1kers