在jenkins中的特定时间运行参数化作业

在jenkins中的特定时间运行参数化作业,jenkins,hudson,jenkins-plugins,hudson-plugins,Jenkins,Hudson,Jenkins Plugins,Hudson Plugins,我有一个参数化作业,我想安排它在特定时间运行。无论如何,我都可以选择我的参数并安排它运行 提前感谢当使用构建触发器启动构建时,无法传递参数。由于作业已参数化,自动启动作业将使用默认参数运行 如果这足够好,那么您只需通过作业配置页面的“构建触发器”部分设置希望它运行的计划,然后选择“定期构建”复选框并添加适当的值(使用cron语法)。让默认参数生效 但是,您可以将其作为触发器发送给jenkins,并传递所需的精确值。然后,您必须直接使用CRON来实现这一点,并可能使用shell脚本,以便可以设置p

我有一个参数化作业,我想安排它在特定时间运行。无论如何,我都可以选择我的参数并安排它运行


提前感谢

当使用构建触发器启动构建时,无法传递参数。由于作业已参数化,自动启动作业将使用默认参数运行

如果这足够好,那么您只需通过作业配置页面的“构建触发器”部分设置希望它运行的计划,然后选择“定期构建”复选框并添加适当的值(使用cron语法)。让默认参数生效

但是,您可以将其作为触发器发送给jenkins,并传递所需的精确值。然后,您必须直接使用CRON来实现这一点,并可能使用shell脚本,以便可以设置param值

比如说,


至少有两种方法可以解决这个问题,
但您必须提前知道所需的值:

  • 将作业的默认值设置为所需值,
    然后安排它随时运行

  • 而不是安排参数化作业,
    创建另一个作业,该作业将触发
    传递相关作业时的参数化作业
    参数的值
    (这也允许您启动目标作业
    使用不同的值集)

编辑:

第三种方法将允许您根据需要更新参数值:

  • 将作业设置为从配置文件读取参数值
    (通过),然后更新该配置文件的内容
    在运行作业之前
注意:在每次运行之前修改此文件是不好的做法,

因为有更好的方法可以自动启动带有参数的Jenkins作业。

在Gonen的答案的基础上,您可以使用使自己更轻松。安装后,创建新作业并将类型设置为“Build Flow”。将此作业配置为在所需的计划时间运行。在此作业的“使用流DSL定义生成流”部分中,指定要生成的作业:

build( "Job You Want Built", param1:"whatever", Param2:"whatever")
您可以通过添加更多行来指定要生成的更多作业,或者重复同一行并更改参数以使用不同的参数多次生成作业


完成后,构建流作业将在计划的时间运行,并使用指定的参数启动所需的作业。

Jenkins crontab允许计划作业在特定时间运行,但不允许传递参数

但是,需要将其扩展到传递参数。一旦可用,它将让你做你想做的事,而不需要像其他一些答案所建议的那样创造额外的詹金斯工作

如果这项功能对您有帮助,您可以投票决定将其包含在Jenkins中。

您可以使用

它允许您在cron计划之后指定参数,例如:

H(0-29)/10 * * * * % name=value; othername=othervalue

%后面的名称-值对被解释为参数。

可以手动设置参数化作业的参数值一次,这些值将在后续计划运行中重新使用

为此,您需要为参数定义一个默认值,如下所示:

parameters {
    string(name: 'testUserName', defaultValue: params.testUserName ?: 'defaultTestUser')
}

查看我的详细答案

Hey@gonen,这可能很愚蠢,但我们如何“设置作业的默认值”?@Maulzey,Jenkins作业中的每个参数都有一个默认值-文本字段的内容、复选框的状态(设置或取消设置)、dropbox的第一项等等。如果不确定,默认值是您选择“立即生成”时看到的值。TY!整理好了,汉克斯。我不得不使用额外的作业,该作业使用参数调用另一个作业,因为我的作业更通用,可以处理多个分支和环境,但是这正在增加我已经拥有的作业数量。这并不能回答这个问题。若要评论或要求作者澄清,请在其帖子下方留下评论。-@删减我链接到的功能将实现作者希望实现的功能,因此我认为其他人知道它的存在是有帮助和相关的。我已将我的答覆重新措辞,使这一点更为清楚,其中最重要的一句是“一旦实施”。是的,这是有帮助的和相关的:作为一个评论,我会投赞成票。票子关闭时是固定的,参考的是中提出的解决方案。