每次使用不同的参数多次安排相同的Jenkins作业

时间:2015-07-02 09:20:12

标签: jenkins jenkins-plugins

我有詹金斯参数化的工作,我想安排每晚,每天早上和每周。 它基本上是一个启动/关闭环境工作,它在夜间关闭环境并在早上启动,周末是不同的时间表。那么如何在不创建三个独立工作的情况下实现这一目标

我需要在不同时间建立这项工作1)每个(MON-FRI)工作日早上7点START环境2)每个(MON-FRI)工作日晚上8点晚上停止环境

2 个答案:

答案 0 :(得分:1)

默认情况下,Jenkins无法执行您想要的操作,但参数化计划程序插件会添加您需要的功能。它允许您为每个计划指定具有自定义参数值的多个计划,如下所示:

#lets run against the integration environment at 15 past the hour
15 * * * * % env=int
#run QA too
30 * * * % env=qa

答案 1 :(得分:0)

可以告诉您如何避免为您的要求创建多个作业。

  1. 首先,您需要使用构建计划在上午7点和晚上8点触发您的工作

  2. 使用以下脚本

  3. 下面的脚本将检查您是在早上或晚上,工作日或周末运行,并根据时间启动/停止您的环境

    如前所述,这只是一个可以帮助您接近的想法,您需要调整以下代码以满足您的确切要求

    注意:用你的代码替换goto的开始和停止部分的echo部分来启动和停止环境

    @echo off
    echo Current Date and Time %date%-%time%
    
    for /f %%a in ('date /t') do set "d=%%a"
    
    set "t=%time:~0,2%"
    
    
    if %t% GTR 12 goto Ni
    if %t% LSS 12 goto Day
    
    :Day
    
    if %d% == Mon goto start
    if %d% == Tue goto start
    if %d% == Wed goto start
    if %d% == Thu goto start
    if %d% == Fri goto start
    if %d% == Sat goto TBD
    if %d% == Sun goto TBD
    
    
    :Ni
    
    if %d% == Mon goto stop
    if %d% == Tue goto stop
    if %d% == Wed goto stop
    if %d% == Thu goto stop
    if %d% == Fri goto stop
    if %d% == Sat goto TBD
    if %d% == Sun goto TBD
    
    
    :start
    
    echo start an application
    
    goto last
    
    :stop
    
    echo stop an application
    
    
    :last
    
    echo last line