在 commit/pull 请求上跟踪多个 github 回购以构建 jenkins 作业
track multiple github repo on commit/pull request to build a jenkins job
我有一个标准的 Jenkins 作业,需要触发对我添加到配置中的多个 SCM 插件的任何 x 存储库的任何拉动 request/commit。
是否有任何方法可以挂钩所有存储库,以便在对任何存储库的拉取请求中,作业构建发出拉取请求的特定存储库?
这会很有帮助,因为当我可以为所有回购提供一份工作时,我不需要每个回购 1 个工作。
如果您 ,Jenkins 将被该 webhook 调用。
但是 Jenkins GitHub plugin 只会触发“Github project
”具有正确 git@github.com:Person/Project.git
存储库的作业。
一种可能的解决方法是:
- 在 GitHub 一个父仓库上发布,将所有其他仓库声明为 submodules;
- 在其他回购上设置另一个 webhook 以触发父回购中的
git submodule update --remote
(以刷新所有子模块 gitlinks SHA1, special entries in the index)并将该父回购推回到 GitHub;
- 有一个 Jenkins 作业监控(通过 GitHub 插件及其 webhook)唯一的 GitHub 父仓库;
- 有一个构建步骤,compares
GIT_COMMIT
and GIT_PREVIOUS_COMMIT
以确定哪个子文件夹 -- 子模块 -- 刚刚更改,并仅在那个或那些子文件夹上启动构建。
使用 Jenkins 管道是可能的。
您可以通过结帐 built-in 步骤指定任意数量的 SCM 位置。在这种情况下,Jenkins 会 "know" 它必须在任何源存储库中修改后重建管道。 Git 当然应该启用挂钩来实现它。
我有一个标准的 Jenkins 作业,需要触发对我添加到配置中的多个 SCM 插件的任何 x 存储库的任何拉动 request/commit。
是否有任何方法可以挂钩所有存储库,以便在对任何存储库的拉取请求中,作业构建发出拉取请求的特定存储库?
这会很有帮助,因为当我可以为所有回购提供一份工作时,我不需要每个回购 1 个工作。
如果您
但是 Jenkins GitHub plugin 只会触发“Github project
”具有正确 git@github.com:Person/Project.git
存储库的作业。
一种可能的解决方法是:
- 在 GitHub 一个父仓库上发布,将所有其他仓库声明为 submodules;
- 在其他回购上设置另一个 webhook 以触发父回购中的
git submodule update --remote
(以刷新所有子模块 gitlinks SHA1, special entries in the index)并将该父回购推回到 GitHub; - 有一个 Jenkins 作业监控(通过 GitHub 插件及其 webhook)唯一的 GitHub 父仓库;
- 有一个构建步骤,compares
GIT_COMMIT
andGIT_PREVIOUS_COMMIT
以确定哪个子文件夹 -- 子模块 -- 刚刚更改,并仅在那个或那些子文件夹上启动构建。
使用 Jenkins 管道是可能的。
您可以通过结帐 built-in 步骤指定任意数量的 SCM 位置。在这种情况下,Jenkins 会 "know" 它必须在任何源存储库中修改后重建管道。 Git 当然应该启用挂钩来实现它。