github - 在提交/拉取请求时跟踪多个 github 存储库以构建 jenkins 作业

标签 github jenkins jenkins-plugins jenkins-pipeline

我有一个标准的 Jenkins 作业,对于我添加到配置中的多个 SCM 插件的任何 x 存储库的任何拉取请求/提交,都需要触发该作业。

有什么方法可以在所有存储库上挂上钩子(Hook),以便在对任何存储库的拉取请求时,作业会构建发出拉取请求的特定存储库?

这会很有帮助,因为当我可以为所有 repo 做一份工作时,我不需要每个 repo 一份工作。

最佳答案

如果您 set your Jenkins url in the webhooks and services of your various GitHub repos , Jenkins 将被该 webhook 调用。

但是 Jenkins GitHub plugin只会触发“Github project ”具有权限的作业 git@github.com:Person/Project.git repo 。

一种可能的解决方法是:

  • 在 GitHub 上发布一个父存储库,将所有其他存储库声明为 submodules ;
  • 在其他 repos 上设置另一个 webhook 以触发 git submodule update --remote在父 repo 中(为了刷新所有子模块 gitlinks SHA1special entries in the index )并将父 repo 推回 GitHub;
  • 有一个 Jenkins 工作来监控(通过 GitHub 插件及其 webhook)唯一的 GitHub 父 repo;
  • 有一个构建步骤 compares GIT_COMMIT and GIT_PREVIOUS_COMMIT 为了确定哪个子文件夹(子模块)刚刚更改,并仅在那个或那些子文件夹上启动构建。
  • 关于github - 在提交/拉取请求时跟踪多个 github 存储库以构建 jenkins 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38416790/

    相关文章:

    github - GitLab:有没有类似GitHub的项目概念?

    rest - Jenkins Rest API 获取特定构建的提交

    jenkins - 为 future 的日期安排 Jenkins 工作

    javascript - String.format 不是函数

    html - 将 jekyll 网站发布到 github pages

    git - 更改代码时需要遵循的正确 GitHub 流程是什么?

    java - 如何使用 Jenkins 从 Nexus 获取 jar 文件?

    jenkins - 我如何从 groovy 脚本调用另一个 jenkins 构建作业

    java - Jenkins:config.jelly 中的 validateButton 用于没有描述符的类

    javascript - 图像未显示在 github 页面上