我知道这是关于过时的软件,但请耐心等待。我们正在使用Jenkins v1.x分支的最新版本。刚刚从Subversion迁移到git,我们需要重新配置我们的CI以使用git。一项工作需要签出两个项目并构建两个以运行测试。由于git plugin不允许将不同的项目签入不同的目录(请参阅JENKINS-4535和各种后续行动 - TLDR:它没有实施),我们正在使用Multiple SCM plugin实现这一目标。
现在我们被SCM轮询在此设置中无法正常工作的事实所困扰,并且即使没有任何更改,Jenkins也会每次都运行该作业。当您查看同一项目的两个不同分支时,我找到this fix,但在我们的情况下,我们会检查不同项目的同一分支。我想这就是为什么提到的修复工作无法工作,因为两个项目的分支说明符完全相同。
我们可以尝试使这个设置正确运行吗? 请注意,自从迁移到git并将Jenkins升级到v2.x或使用管道(尽管绝对是有意的)之后,还有很多过渡工作要做,这是我们真正想要避免的事情现在。
答案 0 :(得分:1)
尝试将结帐与结帐分开:您可以定义两个额外的“触发”作业,每个单独轮询一个项目。在更改后,每个都会触发您的主要工作(然后通过Muliple SCM插件执行实际结账)。
答案 1 :(得分:0)
我们决定将Jenkins更新为2.x并使用declarative pipeline DSL,因为我们的设置似乎无法使用相同的一组作业进行迁移(但Alex O's solution使用其他触发器作业是一个很好的想法)这似乎是与詹金斯保持同步的最佳方式。
这是我们提出的脚本的骨架。我们无法使用声明性SCM轮询(triggers
/pollSCM
)来工作 - 它从未触发过(但是we're not alone on this one)。建立一个经典的"但是,通过编辑器的SCM触发器可以工作。有点尴尬,但现在还可以。
r3