仅在特定时间在詹金斯上运行特定分支

时间:2018-09-01 20:05:24

标签: jenkins jenkins-pipeline

我正在将Jenkins管道与Jenkinsfile一起使用。 我想在一天的特定时间触发一个特定分支的构建。 问题是,使用多分支管道选项时会受到限制。 只有一个

  

使用默认触发器扫描多分支管道

会周期性地触发所有分支的建立(甚至不在一天的特定时间)。 是否有在特定时间建立一个特定分支的解决方案?有没有办法在多分支管道项目类型中拥有丰富的配置? (例如,启动自由样式项目时) 谢谢

2 个答案:

答案 0 :(得分:0)

当然有那些选择。

您在谈论脚本化管道吗?

脚本管道

请检查管道properties步骤。 您可以使用它来配置诸如时间触发之类的实际选项。

将多分支视为不是一个作业,而是一个每个分支包含一个作业的文件夹。对于每个分支,可以使用properties步骤来设置这些选项。不能使用GUI设置它们,您只能查看它们。

例如,最好使用代码段生成器为一个分支生成所需的选项。

根据您的需要,所有分支都可以具有相同的Jenkinsfile,并选中env.BRANCH_NAME以使用if或switch条件设置每个分支的属性。

或者您可以为每个分支(与master分支相比)调整Jenkinsfile的这一部分。

声明性管道

不幸的是,我还没有太多使用声明式管道的经验。 但是,有options子句可以设置类似于属性步骤的构建属性。 不确定属性步骤本身是否也将可用。

使用触发器作业的替代解决方案

万一您需要其他东西,您仍然可以创建一个单独的管道作业,该作业只需要在正确的时间为所需的作业触发正确的分支。使用脚本化管道不应太难。您只需要以某种方式找出当前时间,以便知道要触发哪个分支。对于触发器,请使用build步骤。对于要触发的项目,请使用multibranch job name/branch name语法。

使用按分支触发作业的解决方案

您还可以创建一个单独的触发器作业,每个分支一个。这些作业本身可以在不同时间触发,只需使用build步骤触发目标作业的分支即可。

答案 1 :(得分:0)

或者您可以将输入变量用于管道中的分支。

例如

matplotlib