我是Jenkins插件开发的新手。
我试图编写一个应该在多配置类型作业
在这个插件中,我想编写规则,在提交作业时检查用户选择的配置参数,根据所选参数,我想决定是否允许作业运行或者限制它。
应向用户显示无法在控制台输出中运行该作业的原因
有没有人有任何想法,我需要扩展哪个类或我需要实现哪些接口才能获得挂钩进入Jenkins作业运行?
答案 0 :(得分:1)
您可以查看Matrix Execution Strategy,它允许groovy脚本选择要运行的矩阵组合。我想如果你的脚本抛出异常就会停止构建。
对于后台,多配置项目运行控制作业(或flyweight),该作业运行SCM阶段,然后启动所有实际组合。这个插件在轻量级SCM结账后运行。
如果没有别的,这将为您提供一个从
开始的工作插件免责声明:我写了这个插件
答案 1 :(得分:1)
Blocked queue job plugin是我需要的 开箱即用,插件支持两种阻止作业的方式 -
根据上次运行另一个项目的结果。
根据当前项目的最后一次运行结果
在该插件中,BlockQueueItemTaskDispatcher.java扩展了Jenkin的QueueTaskDispatcher,为Jenkins逻辑提供了一个钩子,允许或阻止队列中存在的作业运行。
我使用这个插件作为开发新插件的起点,允许我们根据所选参数和当前时间限制项目。最终目标是限制生产迁移在白天运行
覆盖QueueTaskDispatcher的isBlocked()方法可以访问hudson.model.Queue.Item实例作为参数。然后我使用Item实例的getParams方法来访问用户在运行时选择的构建参数。从中解析了生命周期的价值。检查当前时间。如果生命周期是生产并且当前时间是白天时间,则通过从isBlocked()方法返回非null CauseOfBlockage来限制作业。如果该条件为false,则将CauseCauseOfBlockage返回为null,以允许排队的作业运行。