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

ars1skjm  于 2023-01-25  发布在  Jenkins
关注(0)|答案(6)|浏览(277)

我有一个参数化的作业,我想调度它在特定的时间运行。有没有无论如何我可以选择我的参数和调度它运行。
先谢了

brc7rcf0

brc7rcf01#

至少有两种方法可以解决,
但你必须事先知道期望值

  • 将作业的默认值设置为所需值,

然后安排它随时运行。

  • 代替调度参数化作业,

创建另一个将触发
参数化作业,同时传递相关
参数的值
(This还允许您启动目标作业
具有不同的值集合)。
编辑:
第三种方法允许您根据需要更新参数值:

  • 将作业设置为从配置文件读取参数值

(via EnvInject Plugin),然后更新该配置文件的内容
然后再运行作业。
注意,在每次运行之前修改该文件是不好的做法,
因为有更好的方式来自动启动带有参数的Jenkins作业。
编辑2:
几年过去了,现在我们有了Parameterized Scheduler
以帮助在不同时间使用不同参数排定作业
(see"经典"和声明性管道的示例)。

0ejtzxu1

0ejtzxu12#

使用生成触发器启动生成时,无法传递参数。由于作业已参数化,因此自动启动作业将使用默认参数运行。
如果这足够好,那么你可以简单地通过作业配置页面的“构建触发器”部分设置你想要它运行的调度,然后你可以选择“定期构建”复选框并添加适当的值(使用cron的语法)。
然而,你可以POST到jenkins作为一个触发器,并传递你想要的确切值,然后你必须直接使用CRON,很可能是一个shell脚本,所以你可以设置参数值。
例如,
http://example.com/jenkins/job/this_job/buildWithParameters?PARAMETER=Value

zbwhf8kr

zbwhf8kr3#

根据Gonen的回答,您可以使用Build Flow Plugin来简化您的工作。安装后,创建一个新作业并将类型设置为“Build Flow”。配置此作业以在所需的计划时间运行。在此作业的“使用流DSL定义构建流”部分中,指定您希望它构建的作业:

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

您可以通过添加更多行来指定要构建的更多任务,也可以重复同一行并更改参数以使用不同的参数多次构建任务。
完成后,构建流作业将在预定时间运行,并使用指定参数启动所需作业。

7gyucuyw

7gyucuyw4#

您可以使用Parameter Scheduler Plugin
它允许您在cron计划之后指定参数,例如:

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

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

qf9go6mv

qf9go6mv5#

Jenkins crontab允许调度作业在特定时间运行,但不允许传递参数。
不过,有this Jenkins feature request可以扩展它来传递参数。一旦可用,它就可以让您做您想做的事情,而不需要像其他一些答案所建议的那样创建额外的Jenkins作业。
您可以投票支持此功能尽快包含在Jenkins中,如果它对您有帮助的话。

mtb9vblg

mtb9vblg6#

可以手动设置参数化作业的参数值一次,这些值将在后续计划运行中重复使用。
为此,您需要为参数定义一个默认值,如下所示:

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

请参阅我的详细答案here

相关问题