我有一个参数化的作业,我想调度它在特定的时间运行。有没有无论如何我可以选择我的参数和调度它运行。先谢了
brc7rcf01#
至少有两种方法可以解决,但你必须事先知道期望值
然后安排它随时运行。
创建另一个将触发参数化作业,同时传递相关参数的值(This还允许您启动目标作业具有不同的值集合)。编辑:第三种方法允许您根据需要更新参数值:
(via EnvInject Plugin),然后更新该配置文件的内容然后再运行作业。注意,在每次运行之前修改该文件是不好的做法,因为有更好的方式来自动启动带有参数的Jenkins作业。编辑2:几年过去了,现在我们有了Parameterized Scheduler以帮助在不同时间使用不同参数排定作业(see"经典"和声明性管道的示例)。
0ejtzxu12#
使用生成触发器启动生成时,无法传递参数。由于作业已参数化,因此自动启动作业将使用默认参数运行。如果这足够好,那么你可以简单地通过作业配置页面的“构建触发器”部分设置你想要它运行的调度,然后你可以选择“定期构建”复选框并添加适当的值(使用cron的语法)。然而,你可以POST到jenkins作为一个触发器,并传递你想要的确切值,然后你必须直接使用CRON,很可能是一个shell脚本,所以你可以设置参数值。例如,http://example.com/jenkins/job/this_job/buildWithParameters?PARAMETER=Value
zbwhf8kr3#
根据Gonen的回答,您可以使用Build Flow Plugin来简化您的工作。安装后,创建一个新作业并将类型设置为“Build Flow”。配置此作业以在所需的计划时间运行。在此作业的“使用流DSL定义构建流”部分中,指定您希望它构建的作业:
build( "Job You Want Built", param1:"whatever", Param2:"whatever")
您可以通过添加更多行来指定要构建的更多任务,也可以重复同一行并更改参数以使用不同的参数多次构建任务。完成后,构建流作业将在预定时间运行,并使用指定参数启动所需作业。
7gyucuyw4#
您可以使用Parameter Scheduler Plugin它允许您在cron计划之后指定参数,例如:
H(0-29)/10 * * * * % name=value; othername=othervalue
%后面的名称值对被解释为参数。
qf9go6mv5#
Jenkins crontab允许调度作业在特定时间运行,但不允许传递参数。不过,有this Jenkins feature request可以扩展它来传递参数。一旦可用,它就可以让您做您想做的事情,而不需要像其他一些答案所建议的那样创建额外的Jenkins作业。您可以投票支持此功能尽快包含在Jenkins中,如果它对您有帮助的话。
mtb9vblg6#
可以手动设置参数化作业的参数值一次,这些值将在后续计划运行中重复使用。为此,您需要为参数定义一个默认值,如下所示:
parameters { string(name: 'testUserName', defaultValue: params.testUserName ?: 'defaultTestUser') }
请参阅我的详细答案here
6条答案
按热度按时间brc7rcf01#
至少有两种方法可以解决,
但你必须事先知道期望值
然后安排它随时运行。
创建另一个将触发
参数化作业,同时传递相关
参数的值
(This还允许您启动目标作业
具有不同的值集合)。
编辑:
第三种方法允许您根据需要更新参数值:
(via EnvInject Plugin),然后更新该配置文件的内容
然后再运行作业。
注意,在每次运行之前修改该文件是不好的做法,
因为有更好的方式来自动启动带有参数的Jenkins作业。
编辑2:
几年过去了,现在我们有了Parameterized Scheduler
以帮助在不同时间使用不同参数排定作业
(see"经典"和声明性管道的示例)。
0ejtzxu12#
使用生成触发器启动生成时,无法传递参数。由于作业已参数化,因此自动启动作业将使用默认参数运行。
如果这足够好,那么你可以简单地通过作业配置页面的“构建触发器”部分设置你想要它运行的调度,然后你可以选择“定期构建”复选框并添加适当的值(使用cron的语法)。
然而,你可以POST到jenkins作为一个触发器,并传递你想要的确切值,然后你必须直接使用CRON,很可能是一个shell脚本,所以你可以设置参数值。
例如,
http://example.com/jenkins/job/this_job/buildWithParameters?PARAMETER=Value
zbwhf8kr3#
根据Gonen的回答,您可以使用Build Flow Plugin来简化您的工作。安装后,创建一个新作业并将类型设置为“Build Flow”。配置此作业以在所需的计划时间运行。在此作业的“使用流DSL定义构建流”部分中,指定您希望它构建的作业:
您可以通过添加更多行来指定要构建的更多任务,也可以重复同一行并更改参数以使用不同的参数多次构建任务。
完成后,构建流作业将在预定时间运行,并使用指定参数启动所需作业。
7gyucuyw4#
您可以使用Parameter Scheduler Plugin
它允许您在cron计划之后指定参数,例如:
%后面的名称值对被解释为参数。
qf9go6mv5#
Jenkins crontab允许调度作业在特定时间运行,但不允许传递参数。
不过,有this Jenkins feature request可以扩展它来传递参数。一旦可用,它就可以让您做您想做的事情,而不需要像其他一些答案所建议的那样创建额外的Jenkins作业。
您可以投票支持此功能尽快包含在Jenkins中,如果它对您有帮助的话。
mtb9vblg6#
可以手动设置参数化作业的参数值一次,这些值将在后续计划运行中重复使用。
为此,您需要为参数定义一个默认值,如下所示:
请参阅我的详细答案here