我可以将构建配置为每分钟进行一次,但部署只能在一个Jenkins作业中每天进行一次吗?

时间:2012-11-07 05:27:39

标签: jenkins jenkins-plugins

在单个Jenkins作业中,我们可以通过指定schedulepolling来触发构建。但是,在这两种情况下,构建都会被触发,并且我已经配置为构建后步骤(使用PostBuild Task插件)的部署操作也会发生。我希望只要轮询检测到更改就会发生构建,但部署只能根据我提供的计划进行。

是否可以在一个作业中完成,或者我是否必须为它们配置2个单独的作业?

2 个答案:

答案 0 :(得分:1)

在2个工作中完成它会更干净。但是,如果你真的需要在一个作业中使用它,你可以使用Jenkins插件的组合来完成这项工作。

  • 使用EnvInject插件公开BUILD_CAUSE和/或BUILD_CAUSE_SCHEDULED *环境变量。 (这可能没有必要,您可以在默认情况下引用Jenkins配置中的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”运算符