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

User can add a new step from the list of available steps and edit it

XMLWordPrintable

    • Icon: Story Story
    • Resolution: Fixed
    • Icon: Major Major
    • blueocean-plugin
    • None
    • atlantic, arctic, tasman, frank

      In Scope

      • User clicks "Add Step" and the dialog appears showing a list of steps
      • Clicking "Use Step" adds a the step to the end of the step list
      • User can see the form for the step in the editor
      • List of available steps is driven by the API provided by JENKINS-38584
      • An extension point for a step editor to plug into
      • Implement for at least 2 different steps (so we know what a step editor form looks like)
      • User can click on a step after it has been added and edit contents (via its editor, unless it is "unsupported" type see https://issues.jenkins-ci.org/browse/JENKINS-38590)

      Out of Scope

      • Adding a step which doesn't have an editor (handled in another ticket)

      Some more details:

      A chunk of steps in the model/json looks like this:

      "steps":       [
                      {
                "name": "sh",
                "arguments":           {
                  "value": "cat /usr/local/apache2/conf/extra/httpd-userdir.conf"
                }
              },
                      {
                "name": "sh",
                "arguments":           {            
                  "value": "echo \"The answer is 42\""
                }
              }
            ]
      

      (referring to https://github.com/jenkinsci/pipeline-model-definition-plugin/blob/master/src/test/resources/json/agentDocker.json - details may change a bit).

      Note that each step object has a name (which can be looked up to see if there is an editor for it). In this case it is the most common sh step - the arguments here is a simple object which has a "value" of the script.

      This AST/model is formally defined here: https://github.com/jenkinsci/pipeline-model-definition-plugin/blob/master/src/main/resources/ast-schema.json. This is an example of a "named argument" - there are few ways arguments for steps can be expressed but this is most common (and fairly simple).
      Different steps may have different representations: one of namedArgumentList, positionalArgumentList or singleArgument.

            kzantow Keith Zantow
            jamesdumay James Dumay
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: