在jenkins构建计划中添加构建参数

Eri*_*sum 17 jenkins jenkins-plugins

我有一个詹金斯的工作.我想在一个特定的时间用build参数构建我的工作.

我想通过使用该Build periodically选项来做到这一点.

我有这样的输入:

*/1 * * * * Parameter1
Run Code Online (Sandbox Code Playgroud)

如果我这样做,jenkins会显示错误.

这可能不使用任何插件.

如果不是,那么哪个插件会更好

或者有没有办法在时间表中给出参数?

我的实际要求是这样的:

 build in morning using one parameter
 build in evening using another parameter.    
Run Code Online (Sandbox Code Playgroud)

小智 15

基本上,使用Build periodic选项,您无法使用参数计划Jenkins作业.

但是,要在需要使用不同环境的不同时间安排作业,您必须使用上面提到的参数化调度程序插件https://github.com/jwmach1/parameterized-scheduler或搜索(管理Jenkins - >管理插件 - >参数化调度程序).因此, #Parameter1 H/15 * * * * %Parameter1 #Parameter2 H/30 * * * * %Parameter2 请记住,您必须设置参数,因为插件仅对具有参数的作业可见.

Node和Label参数插件可以提供帮助,因为它允许您选择单个节点,假设已经配置了不同的服务器qa1和qa2.希望能为您澄清一些事情.

  • 现在它是一个官方插件:https://wiki.jenkins.io/display/JENKINS/Parameterized+Scheduler+Plugin (2认同)

Bru*_*vit 9

使用原生的Jenkins crontab,这是不可能的.

但是应该可以使用这个插件:https: //github.com/jwmach1/parameterized-scheduler

您必须分叉repo并构建此插件+进行手动安装.

本教程解释了如何构建自定义插件:https: //wiki.jenkins-ci.org/display/JENKINS/Plugin+tutorial

(设置环境+构建插件)


小智 5

也许不完全是你想要的,但这是我发现的一个有趣的技巧,所以我决定分享。您可以根据环境以编程方式设置 Jenkins 作业的参数。

# check if job was trigered by timer
if [ $(env | grep -E '^BUILD_CAUSE=TIMERTRIGGER$') ] ; then 
  # your logic here, utilise the power of bash   
  if [ $(date +"%H") -eq 16 ] ; then PARAM=VALUE_1 ; fi
  if [ $(date +"%H") -eq 17 ] ; then PARAM=VALUE_2 ; fi
fi
Run Code Online (Sandbox Code Playgroud)

  • `BUILD_CAUSE` 变量取决于 EnvInject 插件 (2认同)