集成git-slave和jenkins的最佳方式是什么?有没有可能在不编写完整的插件的情况下做到这一点?有什么我可以走捷径的吗?我最感兴趣的是复制:
(1)轮询和启动基于对git从属git存储库或其子存储库的更改的构建。
(2)打印出自上次构建以来所有存储库中的提交。
只是看看有没有其他人在这方面做过什么。我喜欢git-slave,因为对于普通的scm用户来说,它似乎比其他多存储库方法(即git子模块、git子树)更不容易出错。我看到repo有一个插件,但不幸的是repo与gerrit联系得太紧密了。
发布于 2013-06-18 00:48:56
如果没有太多关于Jenkins的详细知识,我会猜测
(1)轮询和启动基于对git从属git存储库或其子存储库的更改的构建
你必须在一端或另一端编写一个插件。如果你不想写一个Jenkins插件,你需要写一个Git post-receive钩子或者类似的东西,这可能会触发Jenkins构建repo (如果它是一个从属的话就是它的父对象)。设置post-receive钩子可能更好,因为它消除了轮询开销,并且this question提供了一个博客文章的链接,该博客帖子讨论了这一点。
用于(2)打印自上次构建以来所有存储库中的提交
最有可能的方法似乎是让Jenkins构建在完成构建时使用gits tag在存储库和从属/子代上放置一个标记,然后使用gits log $last_build_tag..HEAD之类的东西来显示自该构建以来的所有提交。我不建议回收标签,而是使用多个带时间戳的标签(例如jenkins-build-2013-06-19-10-24),并从git tag | sort -nr | sed '/jenkins-build/q'的输出中提取$last_build_tag (不需要使用gits tag,因为Jenkins标签集可能对所有repos都是相同的)。
这些标签肯定会把标签空间弄得乱七八糟,理想情况下,你应该把这些标签放在一个只从别人那里提取的repo上,这样你就不会把这些标签推出去,把其他所有的repo搞得一团糟。
https://stackoverflow.com/questions/17138728
复制相似问题