Custom Tools Plugin

Skip to end of metadata
Go to start of metadata

Plugin Information

Plugin ID custom-tools-plugin Changes In Latest Release
Since Latest Release
Latest Release
Latest Release Date
Required Core
Dependencies
0.4.1
Nov 25, 2013
1.480.3
extended-choice-parameter (version:0.28)
Source Code
Issue Tracking
Maintainer(s)
GitHub
Open Issues
Ryan Campbell (id: recampbell)
Oleg Nenashev (id: oleg_nenashev)
Usage Installations 2013-Apr 165
2013-May 191
2013-Jun 207
2013-Jul 220
2013-Aug 244
2013-Sep 247
2013-Oct 248
2013-Nov 264
2013-Dec 277
2014-Jan 309
2014-Feb 310
2014-Mar 311

A generic tool installer. You define how tools get installed, and the plugin will automatically install them when needed. 

Overview 

A job will often require a tool not already installed on your slave machines. In large Jenkins environments, this often results in waiting on an administrator. The goal of this plugin is to let users manage their own tools, without requiring this administrator involvement.

Using this plugin, you can define a script (or just a URL) for installing a tool. You then define which jobs require the tool, and the plugin installs them as needed before the build runs.

Example

Let's say that you have a build that needs NodeJS. The first step is to add the tool to the "Custom Tools" section in the global configuration. You could use a script, as follows. The "Exported paths" field lets you specify multiple directory patterns which will be added to the $PATH so that your build needn't know where the tool is actually installed.
Then, you just need to add the tool requirement to your job's Build Environment:

Then, you can just use the tool in your job, without having to know where it's installed. The plugin will install it as needed before your job runs, and make sure the $PATH is setup correctly:

JIRA Issues

Future

Wiki will be updated according to changes in 0.3 and 0.4 versions.

In the future, there will be a repository of tool installers hosted by the Jenkins community on GitHub, allowing people to share tool installation scripts.

Compared to Tool Environment Plugin the advantages are that you can define tools of arbitrary type more intuitively (otherwise you would need to make an e.g. "Ant installation" that is not in fact Ant at all but really NodeJS); and in the common case that your usage of the tool is just adding it to $PATH, it is a little easier to configure on the job side. In the future these plugins should be merged.

Useful links

Version History

Version 0.4.1 (11/25/2013)

Bug fixes:

Version 0.4 (09/08/2013)

Version 0.3 (08/02/2013)

  • Change of ownership. New owner: Oleg Nenashev, Synopsys Inc., www.synopsys.com
  • New features:
    • JENKINS-18774 - New option: Setup of label-specific environment variables (useful for LD_LIBRARY_PATH, etc.)
    • JENKINS-18707 - New option: Skip installation of tool at MatrixBuild's master job
    • JENKINS-17844 - Improvement: Environment Variables expansion in ExportedPaths and ToolHome
    • Partial replacement of the Tool Environment Plugin. Custom Tools can export HOME variables in different cases (ex, Tool_HOME and TOOL_HOME)
  • Bug fixes:
    • JENKINS-18815 - Home variables substitution doesn't work properly in case of leading variable
    • JENKINS-18481 - BuildWrapper throws NPE if user doesn't select any tool 
    • JENKINS-14515 - Malformed path variable in case of different operating systems at master and slave
    • JENKINS-13285 - customtools-plugin does not delegate the Launcher.isUnix() call in DecoratedLauncher

Labels

Edit
plugin-buildwrapper plugin-buildwrapper Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

Add Comment