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