Jenkins 文件系统触发器(FS 触发器)——应该有 2 种轮询机制吗?如何合并 %WORKSPACE%

Jenkins File System Trigger (FS Trigger) - should there be 2 polling mechanisms? How to incorporate %WORKSPACE%

我正在使用 FileSystem 触发器来监视文件夹中的代码是否已更改(来自 git 存储库)

我的想法是

  1. 每 2 分钟使用一次正常的 Poll SCM
  2. 在第 1 步每 2 分钟轮询一次后,检查实际下载的源文件夹是否有更改。

问题:

  1. 流量对吗?它应该每 2 分钟轮询一次 SCM,然后每 2 分钟轮询一次实际文件夹吗?它应该直接在 bitbucket/github 上轮询 repo 中的文件夹吗?目前,每次启动项目时都会构建构建 - 它会绕过文件夹检查。

  2. 我尝试将文件夹路径设置为 %WORKSPACE%/MyProjectToMonitorFolder 并且 [FSTrigger] - 监控文件夹日志说找不到文件夹。如果我硬编码图像中的实际完整文件夹路径,则会找到文件夹和更改。如何将 %WORSKPACE% 合并到文件夹路径中?

这两个触发器服务于非常不同的用例,通常不会一起使用。我假设您想要实现的是触发您的工作,只要您的 Git 存储库中的特定文件夹发生更改,它就会 运行 它。
您可以通过首先将 SCM Git 构建阶段配置为仅监视存储库中的特定文件夹来实现它,这将消除使用文件系统触发器的需要,因为它只会在配置的文件夹发生更改时触发作业.您可以在 Official Documentation 轮询忽略某些路径中的提交 部分找到更多信息。
您还可以查看 This Answer 了解更多信息。

此外,强烈建议从计划的 SCM 拉动机制转移到基于挂钩的 Git 触发器,只要新代码被推送到存储库,它就会触发您的工作,并且无需不断检查有关更改,请参阅此 This Answer 以获取有关 git 挂钩配置的更多信息。
此外,每个主要的 Git 存储库管理器(GitHub、Bitbucket、Gitlab...)都有用于 git 挂钩和其他操作的专用集成 Jenkins 插件 - 因此您可以使用其中之一使您的集成变得容易。