一个 SCM 轮询多个作业以提高性能
One SCM poll for multiple jobs to improve performance
是否可以让 Jenkins 定期从 SCM(在我的例子中是 Subversion)检索代码,并且所有作业都使用这个更新的代码,而不是每次 运行 时重新轮询自己?
谢谢
这是实现它的一种方法:
假设您有 4 份工作:A、B、C、D。
作业 A 的配置:
Source Code Management
配置了 SVN 存储库详细信息。
Build Triggers
设置为 Poll SCM
.
Post-build Actions
配置为构建作业 B、C、D。
工作 B、C、D 配置:
Source Code Management
设置为 None
.
- 未设置
Build Triggers
。
- 构建步骤中使用了来自作业 A 的工作区的代码。
此处作业 A 定期轮询 SCM 以获取更改。当检测到更改时,它会从 SCM 中提取最新代码并进行构建。 Post 构建,它会触发作业 B、C、D。
由于作业 B、C、D 配置为使用作业 A 工作区中的代码,因此它们使用的代码与作业 A 最近提取的代码相同。
我不确定 jenkins 是否有这样的内置功能。但即使有,我认为詹金斯方面的投票始终只是第二好的解决方案。最好尝试通知 jenkins 有关 SCM 的更改,并让 jenkins 决定构建哪些作业。
您只需调用 jenkins 的“notifyCommit”URL。有关详细信息,请参阅 https://plugins.jenkins.io/subversion/。
是否可以让 Jenkins 定期从 SCM(在我的例子中是 Subversion)检索代码,并且所有作业都使用这个更新的代码,而不是每次 运行 时重新轮询自己?
谢谢
这是实现它的一种方法:
假设您有 4 份工作:A、B、C、D。
作业 A 的配置:
Source Code Management
配置了 SVN 存储库详细信息。Build Triggers
设置为Poll SCM
.Post-build Actions
配置为构建作业 B、C、D。
工作 B、C、D 配置:
Source Code Management
设置为None
.- 未设置
Build Triggers
。 - 构建步骤中使用了来自作业 A 的工作区的代码。
此处作业 A 定期轮询 SCM 以获取更改。当检测到更改时,它会从 SCM 中提取最新代码并进行构建。 Post 构建,它会触发作业 B、C、D。
由于作业 B、C、D 配置为使用作业 A 工作区中的代码,因此它们使用的代码与作业 A 最近提取的代码相同。
我不确定 jenkins 是否有这样的内置功能。但即使有,我认为詹金斯方面的投票始终只是第二好的解决方案。最好尝试通知 jenkins 有关 SCM 的更改,并让 jenkins 决定构建哪些作业。 您只需调用 jenkins 的“notifyCommit”URL。有关详细信息,请参阅 https://plugins.jenkins.io/subversion/。