我有一个高级控制器任务,我打电话给#34;经理"。 Manager使用Github Pull Request Builder(GHPRB)处理启动多个下游作业。只有Manager使用该插件。
所有下游作业都使用以下选项:
Set GitHub commit status with custom context and message (Must configure upstream job using GHPRB trigger)
我遇到的情况是开发人员打开拉取请求(PR),之后他们想要进行更改,以便在下游测试完成之前推送第二次提交。
在这种情况下,管理员很容易停止,因为GHPRB在" Trigger Setup"中提供了内置功能。该功能是"取消构建更新"。
我想解决的问题是如何杀死下游工作。
如果同一作业的两个副本正在运行,您可以在Jenkins中停止作业。我想弄清楚的是:
如果我有三份下游"工作A"正在运行并且所有三个都在测试单独的pull请求,这太棒了!但是,如果其中两个工作正在测试相同的PR:
一个。我可以检测到他们都在测试相同的PR吗?
B中。如果在同一个PR上运行两个测试,我可以停止最老的工作以支持最近的工作吗?
℃。如果A和B可以使用Jenkins插件提供此解决方案吗?
d。如果A和B而不是C,我如何使用现有功能执行此操作?
答案 0 :(得分:0)
是否可以使用其他插件或现有的Jenkins功能进行检查;如果有两个测试并且两者都具有相同的sha1环境变量,请停止第一个测试并构建最新的测试吗?
如果您的构建不是一个巨大的步骤,而是一系列步骤,您可以考虑在工作的每个步骤之间执行git fetch
。
如果你的工作被配置为拉取请求分支(as in here),使用像+refs/pull/*:refs/remotes/origin/pr/*
这样的refspec,你可能会因为分支pull/aPullRequestID
HEAD与${sha1}
相比发生了变化