я создал два сценария в мерзавце крючок перед фиксацией для сохранения разрешений Linux для всех файлов в файл разрешения и после оформления заказа для восстановления прав доступа с помощью файл разрешений. Это нормально работает, если я делаю git clone/checkout/commit вручную.Лучшая практика для обработки разрешения файла в мерзавце с Дженкинс
Однако, когда я устанавливаю Дженкинс к оформлению заказа проекта, он будет выполнить следующую команду:
мерзавец фотографии -f
Это использует -f вариант и пытается бросить удалите локальные изменения с отключением. Это приведет к отказу в разрешении для моего проекта, поскольку учетная запись Jenkins не имеет права удалять некоторые файлы (например, файл разрешений содержит запись для файла с владельцем корня). Каков наилучший способ использовать Jenkins для создания моего проекта, но сохранить разрешения для файлов в этом сценарии?
Мой проект содержит файлы для разных пользователей (root и других пользователей), поэтому мне это действительно нужно. Как настроить Jenkins для запуска 'sudo'? – chesschi
Измените 'chmod' на' sudo chmod' в ваших сценариях крюка и добавьте строку типа 'jenkins localhost = NOPASSWD:/bin/chmod' в/etc/sudoers – Aleksandr
Да, я сделал это в post-checkout, чтобы изменить разрешение файла как root используя 'sudo chmod'. Проблема в том, что Jenkins выполняет git checkout - если он пытается удалить файл, но не удалось. – chesschi