Можно ли сделать параметр расширенного выбора jenkins зависимым от значения другого параметра? - PullRequest
0 голосов
/ 30 марта 2020

Я использую расширенный параметр выбора с JSON типом параметра в моем декларативном конвейере Jenkins. Я нашел его очень хорошим для предоставления пользовательского интерфейса для параметров, и он возвращает json на основе пользовательских данных.

У меня есть сценарий использования, когда опции, которые отображаются пользователю, зависят от значения другого параметра. Я могу достичь такой функциональности с помощью активного параметра выбора , но затем я застрял с переключателями, флажками, html input et c.

Я нашел подходящую опцию здесь где я могу сделать свойство внутри json зависимым от другого свойства:

{
  "title": "An object",
  "type": "object",
  "properties": {
    "fieldOne": {
      "title": "I should be changed to 'foo'",
      "type": "string",
      "enum": ["foo","bar"],
      "default": "bar"
    },
    "depender1": {
      "title": "I depend on fieldOne to be 'foo'",
      "type": "string",
      "enum": ["lorem","ipsum"],
      "options": {
        "dependencies": {
          "fieldOne": "foo"
        }
      }
    },
    "depender2": {
      "title": "I depend on fieldOne to be 'bar'",
      "type": "string",
      "enum": ["dolor", "sit"],
      "options": {
        "dependencies": {
          "fieldOne": "bar"
        }
      }
    }
  }
}

Это прекрасно работает, когда я пытаюсь это сделать здесь example

Но когда я пробую то же самое на Дженкинсе, это не сработает. Он показывает все 3 текстовых поля. Я также видел возможность просмотра других параметров, но я не мог найти, как использовать его как if if для моего параметра.

Это простой пример, для которого я хочу достичь, требуется пользовательский интерфейс раскрывающегося списка. 1 + Массив (dropdown-2 + текстовое поле + текстовое поле), где в текстовом поле массива зависит от значения dropdown-1, я не могу создать тот же интерфейс в активном выборе.

Кто-нибудь знает, как options.dependencies может работать в jenkins или же может быть достигнуто с помощью watch / other plugins?

...