我在git hook中为 pre-commit 创建了两个脚本,以保存权限文件中所有文件的Linux权限,并使用 post-checkout 来恢复权限权限文件。如果我手动执行git clone / checkout / commit,这工作正常。
但是,当我将Jenkins配置为签出项目时,它将运行以下命令:
git checkout -f
这使用 -f 选项并试图通过取消链接丢弃本地更改。这将为我的项目抛出权限被拒绝错误,因为Jenkins帐户无权删除某些文件(例如,权限文件包含具有root所有者的文件的条目)。在这种情况下,使用Jenkins构建项目但保留文件权限的最佳方法是什么?
答案 0 :(得分:0)
我认为最好的方法是不要更改root拥有文件的权限。在钩子中添加这种文件的范围。
但是如果你真的需要它,你可以使用sudo
没有密码的Jenkins帐户。 UPD:在您的钩子脚本中将chmod
更改为sudo chmod
,并在/ etc / sudoers中添加jenkins localhost = NOPASSWD: /bin/chmod
之类的字符串