【问题标题】:Jenkins and Git: Monitor specific folder on any branchJenkins 和 Git:监控任何分支上的特定文件夹
【发布时间】:2020-02-26 21:46:10
【问题描述】:

我的 repo 在子文件夹中有多个项目,其结构相同,在多个分支中重复。

我正在尝试设置一个监视所有分支的作业,并且仅在子目录“Project1”发生更改时触发作业。这样我可以检查对“Project1”的更改是否适用于发布分支和人们可能设置的任何开发分支。

理论上,Git 插件似乎确实让我可以通过在“要构建的分支”中指定“**”和在“包含的区域”中指定“Project1.*”来进行设置。我也使用“轮询 SCM”,因为这似乎是一个先决条件。

只要您只对一个分支进行更改,此方法就可以正常工作。一旦您在另一个分支上的“Project1”文件夹之外进行了更改,Jenkins 就会从任何目录中获取更改。

这是一个错误还是我试图做一些不受支持的事情?

【问题讨论】:

  • FWIW,你的配置听起来正确。

标签: git github jenkins


【解决方案1】:

可以,但不推荐。 您可以设置额外的签出行为,然后选择哪些文件夹应该触发构建,哪些不触发。

【讨论】:

  • 您说过不建议这样做。这是为什么呢?
【解决方案2】:

我认为this answer 可以帮助你。 您只需要使用要构建的项目的逻辑来实现钩子

【讨论】:

  • 为每个项目创建这个并不容易维护,因为我最终会有大量的工作。我对如何使当前可用的选项起作用很感兴趣。
  • 嗯....可能是我错过了什么...您有 1 个 git repo,所有项目都作为子文件夹,对吧?所以正如answer 中提到的,您可以使用"Push based builds using Jenkins and GIT" 来触发您的工作。您需要做的就是编写一个 1 post-receive 钩子来实现逻辑哪个作业应该运行哪些参数
  • 我预计我的用户会创建大量工作,因此我无法预测他们将使用的项目名称。据我了解,链接的解决方案要求我知道 Jenkins 项目名称。如果不是这样,请告诉我我缺少什么。
  • 明白你的意思。您是否尝试过“轮询忽略某些路径中的提交”选项?工具提示说 如果设置,并且 Jenkins 设置为轮询更改,Jenkins 在确定是否需要触发构建时会注意包含和/或排除的文件和/或文件夹。
  • 是的,我已经设置了。设置排除将使维护更加困难。我认为这可能是某种错误。我已经调试了 Git 插件,发现 git 命令本身返回了不正确的结果。专门为 here 创建了另一个问题
猜你喜欢
  • 2016-08-15
  • 2023-01-20
  • 1970-01-01
  • 2021-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多