我有一个高级控制器任务,我称之为“管理器”。管理器使用Github Pull Request Builder (GHPRB)处理启动多个下游作业。只有管理器才会使用该插件。
所有下游作业都使用以下选项:
Set GitHub commit status with custom context and message (Must configure upstream job using GHPRB trigger)我遇到的情况是,开发人员打开一个pull request (PR),然后通知他们想要进行更改,以便在下游测试完成之前推送第二个提交。
在这种情况下,管理器很容易停止,因为GHPRB在“触发设置”中提供了内置功能。该功能是“取消更新时构建”。
我想解决的问题是如何也杀死下游的工作。
如果同一作业的两个副本正在运行,则可以在Jenkins中停止作业。我想弄清楚的是:
如果我有三个下游"job A“副本在运行,并且这三个副本都在测试单独的拉取请求,那就太棒了!然而,如果其中两个工作正在测试相同的PR:
答:我能检测到他们都在测试同一个PR吗?
如果两个测试在同一个PR上运行,我可以停止最旧的作业而支持最新的作业吗?
C.如果A和B是可能的,哪个Jenkins插件提供了这个解决方案?
D.如果是A和B,而不是C,我该如何使用现有的功能来做到这一点?
发布于 2018-02-08 14:52:23
是否可以使用其他插件或现有的Jenkins功能进行检查;如果有两个测试,并且都具有相同的sha1环境变量,则停止第一个测试并构建最新的测试。
如果您的构建不是一个巨大的步骤,而是一系列步骤,那么您可以考虑在工作的每个步骤之间执行一个git fetch。
如果您的作业配置为拉取请求分支(as in here),使用+refs/pull/*:refs/remotes/origin/pr/*之类的refspecs,您可以检查分支pull/aPullRequestID头与${sha1}相比是否发生了变化
https://stackoverflow.com/questions/48674837
复制相似问题