19

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

提前致谢

4

6 回答 6

26

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

  • 将作业的默认值设置为您需要的值,
    然后安排它在您喜欢的时候运行。

  • 与其调度参数化作业,
    不如创建另一个将触发
    参数化作业的作业,同时将相关
    值传递给参数
    (这也允许您
    使用不同的值集启动目标作业)。

编辑:

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

  • 将作业设置为从配置文件中读取参数值
    (通过EnvInject 插件
    ),然后 在运行作业之前更新该配置文件的内容。

请注意,在每次运行之前修改此文件是不好的做法,
因为有更好的方法可以使用参数自动启动 Jenkins 作业。

于 2013-05-29T22:02:00.653 回答
4

在 Gonen 的回答的基础上,您可以使用Build Flow Plugin让自己更轻松。安装后,创建一个新作业并将类型设置为“构建流程”。将此作业配置为在所需的预定时间运行。在此作业的“使用流 DSL 定义构建流程”部分中,指定您希望它构建的作业:

build( "Job You Want Built", param1:"whatever", Param2:"whatever")

您可以通过添加更多行来指定要构建的更多作业,或者重复同一行并更改参数以使用不同的参数多次构建作业。

完成后,您的 Build Flow 作业将在预定时间运行,并使用指定的参数启动所需的作业。

于 2014-04-30T18:16:06.793 回答
4

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

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

但是,您可以 POST 到 jenkins 作为触发器,并传递您希望的确切值。然后,您可能必须直接使用 CRON 和一个 shell 脚本,这样您就可以设置参数值。

例如,

http://example.com/jenkins/job/this_job/buildWithParameters?PARAMETER=Value

于 2013-05-29T20:02:25.903 回答
4

您可以使用参数调度程序插件

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

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

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

于 2016-02-11T18:00:19.333 回答
4

Jenkins crontab 允许安排作业在特定时间运行,但还不允许传递参数。

但是有这个 Jenkins 功能请求来扩展它以传递参数。一旦可用,它就可以让你做你想做的事,而无需像其他一些答案所建议的那样创建额外的 Jenkins 工作。

如果对您有帮助,您可以投票支持此功能尽快包含在 Jenkins 中。

于 2016-02-08T16:17:13.667 回答
1

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

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

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

在这里查看我的详细答案

于 2020-06-15T13:28:44.580 回答