Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript to enhance parameterized builds

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?

like image 257
quickshiftin Avatar asked Dec 06 '13 23:12

quickshiftin


2 Answers

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
like image 175
chown Avatar answered Nov 06 '22 04:11

chown


I think you would be able to accomplish your listed example with the following dynamic parameters plugin without using javascript: https://github.com/tekante/Dynamic-Jenkins-Parameter/wiki. I have not personally used the plugin as a disclaimer. It looks like it will probably need to be built first based on what I have seen in the GitHub repo and the fact that I cannot find it on the official Jenkins plugin page.

like image 37
drembert Avatar answered Nov 06 '22 04:11

drembert