Javascript to enhance parameterized builds

javascript, jenkins

Solution

Check out the Active Choices Plugin it does exactly what you're looking for:

jenkins-ci.org - Active Choices Plugin github.com - Active Choices Plugin

A Jenkins UI plugin for generating and rendering multiple value options for a job parameter. The parameter options can be dynamically generated from a Groovy script and can respond to changes in other job parameters. The value options can be rendered as combo-boxes, check-boxes, radio-buttons or rich HTML. Active Choices strives to provide in a single plugin functionality found scattered among several pre-existing plugins and some unique capabilities that are not available yet.

The Active Choices plug-in provides additional Jenkins parameter types that can be rendered as user interface (UI) controls in job forms.

Once the plugin is installed three new parameter types become available:

- Active Choices Parameter

- Active Choices Reactive Parameter

- Active Choices Reactive Reference Parameter

Active Choices parameters allow users to select value(s) for a job parameter. Parameter values can be:

- dynamically generated (using Groovy or a Scriptler script)

- dynamically updated based on other UI parameters

- multi-valued (can have more than one value)

- rendered with a variety of UI controls, including dynamic HTML

Problem

The 'parameterized' builds in Jenkins are a bit limited. What if I want to have options that are related to one another? For example 2 drop down lists. The selection from the first one controls the options in the second... I don't really see any prescribed way to implement this, but a thought (and it feels super-hacky) would be to use javascript. I've noticed you can enter `<script>` tags in the description attribute of parameters. Maybe a place to drop in some js? Also looks like prototype.js ships with the system. So just how bad an idea is that, or is there a 'correct' way to do such a thing?

Original source