Jenkins автоматически изменяет значение параметра выбора в зависимости от дня недели - PullRequest
1 голос
/ 12 марта 2020

В моей работе jenkins у меня есть параметр выбора, содержащий 4 значения (val1, val2, val3, val4).

Можно ли динамически устанавливать значение параметра выбора на основе повторяющегося временного события?

Точнее, я хотел бы динамически изменять это значение каждый понедельник года.

Например:

Monday March 16 => it takes val1 
Monday March 23 => it takes val2 
Monday March 30 => it takes val3 
Monday April 6  => it takes val4 
Monday April 13 => it takes val1

и т. Д.

1 Ответ

2 голосов
/ 12 марта 2020

Итак, ваш вопрос сводится к двум:

  1. Как программно определить, какое значение выбрать, исходя из текущей даты?
  2. Как это выяснить, как можно Я полагаю, что это значение будет значением по умолчанию в параметре choice конвейера?

Учитывая, что у вас все в порядке с # 1 (может включать получение номера недели и оставшуюся часть разделив на 4), давайте разберемся со вторым вопросом.

Чтобы изменить параметр choices на основе результата произвольного сценария Groovy, вы можете запустить конвейер сценариев перед декларативным, как то так:

def use_as_default = getValToUseAsDefault() // val1 on March 16, etc.

def list_of_vals = []

list_of_vals += use_as_default // first in the list will get to be selected

if (! ("val1" in list_of_vals) ) { list_of_vals += "val1"}
if (! ("val2" in list_of_vals) ) { list_of_vals += "val2"}
if (! ("val3" in list_of_vals) ) { list_of_vals += "val3"}
if (! ("val4" in list_of_vals) ) { list_of_vals += "val4"}

list_of_vals = Arrays.asList(list_of_vals)

pipeline
{
    agent any

    parameters
    {
        choice(name: 'VALS', choices: list_of_vals, description: 'Choose value')
    }
...
}

def getValToUseAsDefault() {
   // left as exercise to OP
   return "val1"
}
...