Как ввести chroot на Дженкинс

Привет, я пытаюсь автоматизировать процесс синхронизации и сборки хрома на сервере Дженкинс http://www.chromium.org/chromium-os/quick-start-guide

./chromite/bin/cros_sdk --enter

я пытаюсь запустить что-то вроде этого, ожидаемый вывод, как ожидается, будет приглашение chroot с измененным домашним каталогом, у меня есть подчиненное устройство Jenkins, и когда я делаю эти шаги вручную, я могу ввести chroot без каких-либо проблем, и это обеспечивает меня с измененным домашним каталогом, и путь показывает, где я должен быть для следующего шага,

Но когда я добавляю это в оболочку Jenkins Execute на той же машине и с теми же учетными данными, он не может войти в chroot,

./chromite/bin/cros_sdk --enter --log-level=debug
15:59:05: DEBUG: Cache dir lookup.
15:59:05: DEBUG: Configured cache_dir to '/media/1TB/home/qcaswnbu/jenkins1/workspace/Brillo_trial/.cache'

Это то, что я получаю в Дженкинс

Хотя вручную

./chromite/bin/cros_sdk --enter --log-level=debug
17:27:05: DEBUG: Cache dir lookup.
17:27:05: DEBUG: Configured cache_dir to '/media/1TB/home/qcaswnbu/jenkins1/workspace/Brillo_trial/.cache'
17:27:05: DEBUG: Configured cache_dir to '/media/1TB/home/qcaswnbu/jenkins1/workspace/Brillo_trial/.cache'

я получаю дополнительную строку с тем же сообщением, может ли быть шанс, что он выйдет на полпути, когда он будет инициирован с работы Дженкинса?

Любой вклад с благодарностью.

Спасибо прем

1 ответ

Когда ты бежишь cros_sdk Само собой, он ожидает интерактивного приглашения. я думаю, что у Дженкинса нет подключенного терминала (по замыслу), что означает, что пытаться использовать его таким образом, не имеет большого смысла.

Мы разработали инструмент, чтобы его можно было легко написать в сценарии. если у вас есть какая-то команда, которую вы хотите запустить внутри chroot, просто передайте ее в качестве аргумента:

$ cros_sdk -- ls /
bin  build  dev  etc  home  lib  lib32  lib64 ....

Я думаю, что это должно дать вам все, что вам нужно.

Другие вопросы по тегам