Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-30680

Make Custom Tools compatible with Pipeline

XMLWordPrintable

    • Custom Tools Compatibility

      Add support for workflow

      Acceptance criteria from the plugin maintainer (oleg_nenashev

      • UsedCustomToolsAction RunAction2, which tracks the list of required tools
      • "Install custom tool" simple build step, which adds the tool to the scope of the task (AbstractProject or Pipeline's node() scope). Stores data in UsedCustomToolsAction. Pipeline alias - e.g. customTool()
      • Ability to contribute environment variables for launched scripts, likely with a new LauncherDecorator method (decorate(Launcher launcher, Job job, Node node) or so) - depends on JENKINS-TODO, can be done in a compatible way
      • Update the DecoratedLauncher implementation and to move it outside the BuildWrapper to the new LauncherDecorator
      • New DecoratedLauncher implementation pulls information about tools from UsedCustomToolsAction and then initializes it, similarly to what it does now with pulling from the Build Wrapper
      • Automatic test(s) for the common use-cases in Pipeline (see the requirements below)
      • Documentation, can be written in a new page within the GitHub repository (Wiki must die soon). This documentation should describe the logic and provide examples.

      Extra requirements:

      • The version engine is supported including the Tool Version parameter. Should be no problems with that, but needs testing
      • The resolution of variables in the step takes other Node and Job environment variables into account

      Nice2have, optional:

      • Some UI, which improves tracking of tool usage in UsedCustomToolsAction - really important for multi-log Pipeline
      • Support definition of tools on the global level (for all node() calls)
      • CustomToolsBuildWrapper is reworked to the SimpleBuildWrapper
        • oleg_nenashev: Not really required if there is a buildStep described above
      • Common tool() step is able to invoke the customTool() logic somehow.

       

            Unassigned Unassigned
            nharniman Nigel Harniman
            Votes:
            21 Vote for this issue
            Watchers:
            32 Start watching this issue

              Created:
              Updated: