我是詹金斯插件开发的新手。
M试图写一个应该执行的插件之前任何多配置类型作业运行在詹金斯。
在这个插件中,我想编写规则,将检查什么配置参数用户选择提交作业时,基于选定的参数,我想决定是否允许作业运行或限制它。
应该显示用户应该显示的原因,为什么无法在控制台输出中运行该作业。
有没有人有任何想法,我需要扩展或哪些接口,我需要实现以获得挂钩到Jenkins作业运行?詹金斯插件代码,应该在Jenkins运行任何类型的工作之前执行
-1
A
回答
1
Blocked queue job plugin是我需要什么
指出,插件支持两种方式来阻止盒作业 -
根据另一个项目上次运行的结果。
基于当前项目的最后一次运行
在结果该插件的扩展BlockQueueItemTaskDispatcher.java詹金的QueueTaskDispatcher为我们提供一个勾成詹金斯逻辑来允许或阻止出现在队列中的作业从跑步。
我使用这个插件作为开发新插件的起点,它允许我们根据所选参数和当前时间限制项目。最终目标是限制白天运行的生产迁移。
重写QueueTaskDispatcher的isBlocked()方法可以访问hudson.model.Queue.Item实例作为参数给我。然后我使用Item实例的getParams方法访问用户在运行时选择的构建参数。从中解析出生命周期的价值。检查当前时间。如果生命周期是Production,当前时间是白天,那么通过从isBlocked()方法返回非null CauseOfBlockage来限制工作。如果该条件为false,则返回的为允许排队作业运行的nullCauseOfBlockage。
1
你可以看看Matrix Execution Strategy,它允许Groovy脚本选择运行哪个矩阵组合。我想如果你的脚本抛出一个异常,它会停止构建。
对于后台,多配置项目运行一个控制作业(或flyweight),它运行SCM阶段,然后启动所有实际组合。这个插件在flyweight SCM checkout之后运行。
如果不出意外,这会给你一个工作插件从
免责声明开始:我写这个插件
相关问题
- 1. 詹金斯的Maven Release插件Clearcase应该如何工作?
- 2. 如何运行詹金斯
- 3. 詹金斯在试运行
- 4. 詹金斯插件如何工作
- 5. 在詹金斯DSL执行cron作业
- 6. 在詹金斯任何构建作业之前上传文件
- 7. 运行从詹金斯
- 8. 试图运行詹金斯
- 9. 如何确定哪些工作在詹金斯经常执行?
- 10. 詹金斯运行基于可用的软件包工作
- 11. 在詹金斯执行期间,谁/什么中止了工作?
- 12. 詹金斯 - 只增加一个工作的执行者数量
- 13. NVM是不工作的詹金斯执行shell
- 14. 在詹金斯工作后保持构建过程运行
- 15. 如何根据文件类型触发詹金斯工作
- 16. 如何詹金斯运行nosetests
- 17. 运行shell脚本在詹金斯
- 18. 的Nexus詹金斯插件
- 19. 限制当詹金斯的工作可以运行
- 20. 詹金斯如何从詹金斯gradle这个运行指定的testng.xml
- 21. 詹金斯通过代理SVN插件
- 22. 如何运行詹金斯不同的工作,这取决于上游工作
- 23. 执行C#单元测试詹金斯
- 24. 从詹金斯管道执行脚本
- 25. Appium詹金斯测试执行冻结
- 26. 执行Ansible剧本使用詹金斯
- 27. 在执行Jenkinsfile之前执行代码
- 28. 詹金斯推广插件
- 29. 无插件 - 詹金斯
- 30. 如何与詹金斯并行多次运行相同的工作?
我认为这个插件不会有帮助。让我详细说明我的问题。它是一个参数化版本。有选择参数 - 生命周期(有效值是QA,QC,PROD),客户名称(有效值是client1,client2)等。我想在上午8:00到下午3:30之间限制选定客户端的生产版本。我们是否有任何插件可以让我配置规则,说客户端2的构建必须在上午8:00到下午3:30之间被阻止。只有在下午3:30之后,它必须进入队列并执行。 – user55926
感谢您的帮助@KeepCalmAndCarryOn – user55926