Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Git Slave与Jenkins集成_Git_Jenkins_Git Slave - Fatal编程技术网

将Git Slave与Jenkins集成

将Git Slave与Jenkins集成,git,jenkins,git-slave,Git,Jenkins,Git Slave,将git slave与jenkins集成的最佳方式是什么?不编写完整的插件就可以做到这一点吗?我能走捷径吗?我最感兴趣的是复制: (1) 基于对git从属git存储库或其子库的更改轮询并启动构建 (2) 打印出自上次生成以来所有存储库中的提交 看看有没有人在这方面做过什么。我喜欢git slave,因为与其他多存储库方法(即git子模块、git子树)相比,对于普通scm用户来说,它似乎不太容易出错。我看到repo有一个插件,但不幸的是,repo与gerrit的联系太紧密了。如果对Jenkins没

将git slave与jenkins集成的最佳方式是什么?不编写完整的插件就可以做到这一点吗?我能走捷径吗?我最感兴趣的是复制:

(1) 基于对git从属git存储库或其子库的更改轮询并启动构建

(2) 打印出自上次生成以来所有存储库中的提交


看看有没有人在这方面做过什么。我喜欢git slave,因为与其他多存储库方法(即git子模块、git子树)相比,对于普通scm用户来说,它似乎不太容易出错。我看到repo有一个插件,但不幸的是,repo与gerrit的联系太紧密了。

如果对Jenkins没有太多详细的了解,我想这是因为

(1) 基于对git从属git存储库或其子库的更改轮询并启动构建

您必须在一端或另一端编写插件。如果你不想写Jenkins插件,你需要写一个Git post receive钩子或者类似的东西,这可能会触发repo的Jenkins构建(或者如果它是一个从属的话,它的父版本)。设置post-receive钩子可能更好,因为它消除了轮询开销,并提供了一个指向讨论如何执行此操作的博客文章的链接

用于(2)打印自上次生成以来所有存储库中的提交

最可能的方法似乎是让Jenkins build在完成构建时使用
gits标记
在repo和从属/子代上放置一个标记,然后使用类似于
gits log$last\u build\u tag..HEAD的东西来显示自该构建以来的所有提交。我不建议回收标签,而是使用多个时间戳标签(例如jenkins-build-2013-06-19-10-24)并从
git-tag | sort-nr | sed'/jenkins-build/q'
(无需使用
gits-tag
)的输出中提取$last_-build||标签(假设所有回购的jenkins标签集都是相同的)


这些标签肯定会把标签空间弄得乱七八糟,理想情况下,你可以在只从其他人那里提取的回购协议上制作这些标签,这样你就不会把这些标签推出来,弄乱所有其他回购协议。

我们在自己的地方经常使用Gitsave。然而,我们最终忽略了Jenkins中的Gitsave,而是使用了多SCMs插件: