如何安排参数化的詹金斯工作

时间:2019-04-17 18:22:14

标签: jenkins jenkins-pipeline

我有一个多兄弟的Jenkins管道作业,它遵循“使用参数构建”选项,接受用户的一些参数。 现在,我需要安排这项工作按月运行。既然如此,该工作就无法通过用户输入来完成。有没有安排和执行此类工作的方法?我想知道该作业是否可以自动触发,但它可能一直在等待用户输入。我可以使用任何警报机制吗?

3 个答案:

答案 0 :(得分:0)

您可以转到多分支管道的配置,然后导航到“扫描多分支管道触发器”,并相应地安排作业。 (如下所示

enter image description here

答案 1 :(得分:0)

我们可以使用'paremeterized-schedular-plugin'计划任何参数化的Jenkins作业。参数化的cron也可以在声明管道中定义。 参考:  https://github.com/jenkinsci/parameterized-scheduler-plugin/blob/master/README.md

答案 2 :(得分:0)

在不使用任何额外插件的情况下,我建议您创建一个额外的 Pipeline 类型的计划作业。

然后,在管道脚本中,您使用所需的所有参数执行参数化作业。

试图逐步向您展示:

  • “JobWithParameters”是您要定期运行的作业。我想,这已经存在了。
  • "ScheduledJob" 是有计划的 Job,调用 "JobWithParameters"
  1. 创建一个名为“ScheduledJob”的“Pipeline”类型的新作业
  2. 在“构建触发器”部分,检查计划的构建并添加您的 cron 计划(请参阅有用的帮助)
  3. 在“管道”部分,从示例管道下拉列表中选择“Hello World”
  4. 给你的舞台取个合理的名字
  5. 删除 echo "Hello World"
  6. 点击 Pipeline Syntax,将打开另一个窗口/标签,其中包含管道模板生成器
  7. 从“示例步骤”下拉菜单中,选择“构建:构建作业”
  8. 在“要构建的项目”文本框中输入参数化的构建作业名称“JobWithParameters”。还要设置“等待完成”和“传播错误”的复选框以符合您的期望。
  9. 一旦您进入项目并离开文本框,UI 就会反映项目的参数。
  10. 根据需要设置参数并选择“生成管道脚本”按钮。
  11. 脚本会生成到按钮下方的文本区域中,复制脚本并返回“ScheduledJob”配置页面,该页面仍处于打开状态。
  12. 将您的代码片段粘贴到 step 块中(我稍微美化了代码)
pipeline {
   agent any

   stages {
      stage('Run JobWithParameters') {
         steps {
            build job: 'JobWithparameters', 
                  parameters: [
                       string(name: 'TYPE', value: 'Move'), 
                       string(name: 'TO', value: 'America'), 
                       string(name: 'FROM', value: 'Asia'),
                       booleanParam(name: 'DRY_RUN', value: true), 
                       booleanParam(name: 'BUILD', value: false), 
                       booleanParam(name: 'TAG', value: false)]
         }
      }
   }
}

最后,保存工作,大功告成。

您还可以从 git 存储库 checkout 执行管道,这非常方便,因为它允许您将版本放在时间表和参数上。

希望这能在 2 年后 OP 提出这个问题后启发一些飞车用户:-)