linux - Jenkins 从 Dropbox 中的 git 存储库构建

标签 linux git jenkins

我的 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/

相关文章:

java - 获取 404 虽然我的应用程序已部署

jenkins - 一个存储库中有多个jenkinsfile

linux - 在 Perl 脚本中使用 Linux 环境变量作为路径

linux - 将文件从 Suse 服务器移动到 ftp 的 FTP 脚本

Git - 重复提交问题

git - 提交没有出现在 github 上

linux - 通过在 Linux 上运行的 Jenkins 在 Windows 上部署包

Java运行时exec()不解析环境变量

python - 通过使用 Python 将某些参数传递给它来执行 shell 脚本?

仅偶尔提交输出文件的 Git 工作流程