我的 Dropbox 文件夹中有一个主要的 Git 裸存储库,我正在使用运行 Jenkins 的 headless Debian 服务器来构建我的项目。
直到现在,我一直在使用这种方法来构建我的项目:我在我的 headless 服务器上创建了一个裸 git 存储库,并配置 Jenkins 作业以使用以下 URL 从该存储库中提取源代码:/var/缓存/git/项目
。因此,当我希望 Jenkins 构建我的更改时,我必须将它们推送到此存储库。这工作正常,但不是很方便,因为我必须手动推送到两个存储库(Dropbox 和 Debian),而且当我想添加一个新项目时,我需要在 Debian 服务器上创建一个新的存储库。
所以我决定将 Jenkins 作业配置为直接从 Dropbox 存储库中提取。我已经在位于 /home/jardo/Dropbox
的 Debian 服务器上设置了 Dropbox。
但是当我尝试配置 Jenkins 作业以 pull drom URL /home/jardo/Dropbox/git/project.git
时,出现以下错误:
无法连接到存储库:命令“git ls-remote -h/home/jardo/Dropbox/git/project.git HEAD”返回状态代码 128: 标准输出: stderr: fatal: '/home/jardo/Dropbox/git/project.git' 似乎不是 git 存储库 fatal: 远端意外挂断
为什么 Jenkins 能够从 /var/cache/git/project
克隆,但不能从我的 Dropbox 文件夹克隆? Dropbox 已完全同步,存储库内容看起来不错。我已将整个存储库的权限递归设置为 777,但这没有帮助。
这是我的 Dropbox 存储库中 ls -l 的输出:
-rwxrwxrwx 1 jardo jardo 104 Dec 15 21:10 config
-rwxrwxrwx 1 jardo jardo 73 Dec 15 21:10 description
-rwxrwxrwx 1 jardo jardo 23 Dec 15 21:10 HEAD
drwxrwxrwx 2 jardo jardo 4096 Dec 24 13:16 hooks
drwxrwxrwx 2 jardo jardo 4096 Dec 24 13:01 info
drwxrwxrwx 150 jardo jardo 4096 Dec 24 13:01 objects
drwxrwxrwx 4 jardo jardo 4096 Dec 24 12:59 refs
最佳答案
事实证明,即使我尝试将其权限递归设置为 777,用户 Jenkins 也无法访问用户 Jardo 拥有的 GIT 存储库。解决方案是也为用户 Jenkins 设置 Dropbox。
关于linux - Jenkins 从 Dropbox 中的 git 存储库构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27638941/