Tab Parameters

Introduction

This plugin provides Tabs in the "Build with parameters" view. The style try to match to Jenkins style. The implementation uses only base Jenkins classes and native and simple HTML/CSS/JS.

Example of build configuration :

Example of "build with parameters" view:

First tab:

Second tab:

Getting started

Install the plugin on your Jenkins instance. Add a "Tabs parameter" as you would add any other build parameter

Then you can access the parameters of the tab selected by the user with params.tabGroupName.selectedParams.paramName in your pipeline job. You can also access the selected tab name as params.tabGroupName.selectedTab. You can also access the parameters through environment variables as env.(tabGroupName.selectedParams.selectedTab).

The layout of the parameter is defined like :

params
└── tabGroupName
    ├── selectedTab <= This contains the name of the selected tab
    └── selectedParams
        ├── paramName1
        └── paramName2

Limitations:

  • Recursion of tabs groups is not supported (a tab group cannot contain another tab group)
  • Not tested compatibility with rebuild plugin
  • Only tested with base Jenkins Parameters
  • Cannot do CLI/POST requests (TabsGroupParameterDefinition#createValue(String) is not implemented)
  • Only selected tab parameters are sent to the build

Technical Infos

At first, I tough I needed to reimplement the way the parameters where rendered, which lead me to Jenkins core territory, something that I don't wanted to try. Now I think my implementation is not that hacky.

Inspired by uno choice plugin.

Issues

Lookup the GitHub Issues tab

Contributing

See CONTRIBUTING

Refer to our contribution guidelines

LICENSE

Licensed under MIT, see LICENSE