Сделайте Jenkins 'Execute Shell' точно таким же, как при использовании bash shell

Итак, я столкнулся с несколькими моментами, которые, кажется, просто не работают прямо на этапе сборки jenkins 'Execute shell'. Это прекрасно работает, когда вы вошли в систему как один и тот же пользователь на той же машине, когда вводите в bash/zsh/ терминал.

Есть ли где-то настройки, чтобы они точно соответствовали, с точки зрения разрешений, вывода и т. Д.... кажется, что Дженкинс находится в какой-то странной песочнице, и это действительно расстраивает.

Несколько вещей, которые сработали до сих пор, это команды ruby, такие как

bundle exec nanoc compile

а также

cap deploy

Любые идеи были бы хорошы!

Больше информации: Jenkins работает на Mac OSX Mavericks.

1 ответ

Решение

Это ситуация, когда детали имеют значение.

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

Вы можете проверить, как пользователь, под которым вы используете Jenkins, используя su - jenkins (предполагается, что пользователь по имени "Дженкинс"). Затем проверьте переменные среды в области видимости для вашей среды выполнения; один из способов сделать это просто запустить env команда внутри вашей работы Дженкинс, а затем с помощью env -i K1=V1 K2=V2 ... your-command смоделировать ту же среду в ваших тестах.

Наконец, убедитесь, что оболочка, используемая для тестирования, такая же, как и во время выполнения. Если Дженкинс начинает /bin/shнужно проверить с /bin/sh - нет /bin/bash (даже если /bin/sh символическая ссылка на bash!) и уж точно нет zsh,

Если ваши случаи сбоев достаточно интересны, возможно, вы попадаете в рамки безопасности на уровне ОС. Невозможно определить это без точных подробностей о сбоях, которые здесь не приводятся (и в любом случае они не очень актуальны для Stackru; это будет вопросом для ServerFault или такого, если вы применяете ограничения такого типа). Ваш системный администратор - лучшие люди, которые могут здесь помочь.

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