在单个Jenkins作业中,我们可以通过指定schedule
和polling
来触发构建。但是,在这两种情况下,构建都会被触发,并且我已经配置为构建后步骤(使用PostBuild Task
插件)的部署操作也会发生。我希望只要轮询检测到更改就会发生构建,但部署只能根据我提供的计划进行。
是否可以在一个作业中完成,或者我是否必须为它们配置2个单独的作业?
答案 0 :(得分:1)
在2个工作中完成它会更干净。但是,如果你真的需要在一个作业中使用它,你可以使用Jenkins插件的组合来完成这项工作。
使用Flexible Publish插件,构建后操作,在BUILD_CAUSE == SCHEDULED或BUILD_CAUSE_SCHEDULED == true时设置条件发布步骤。 (只测试一个条件。)请注意,您需要使用Jenkins的表达式语法,如下所示:
${ENV,var="BUILD_CAUSE_SCHEDULED"}
* BUILD_CAUSE_SCHEDULED不是它的真名,你需要自己找到它,抱歉。
答案 1 :(得分:1)
你说你正在使用PostBuild Task
插件。这允许在控制台日志上执行正则表达式以确定是否执行任务。
按计划启动的构建将在日志顶部显示Started by timer
。您需要做的就是将此表达式添加到“日志文本”字段下的PostBuild步骤中。如果您已经在那里使用某些条件,请单击“添加”按钮添加另一个“日志文本”字段,并在它们之间使用“AND”运算符