Common Pipeline terms

Before you start creating Pipelines, learn the following commonly used Pipeline terms:

  • controller: A controller is a computer, VM, or container where Jenkins is installed and run. It is used to serve requests and handle build tasks.

  • agent: An agent is typically a machine, or container, which connects to a Jenkins controller and executes tasks when directed by the controller.

  • executor: An executor is a computational resource for running builds and performing operations. It can run on any controller or agent. An executor can be parallelized on a specific controller or agent.

    Using executors on a controller should be reserved to very specific cases as there are security and performance implications to doing so.
  • node: A node is an operating system or container running Jenkins as an agent. Most work a Pipeline performs is done in the context of one or more declared node steps. Confining the work inside of a node step does two things:

    1. Schedules the steps contained within the block to run by adding an item to the Jenkins queue. As soon as an executor is free on a node, the steps will run.

    2. Creates a workspace (a directory specific to that particular Pipeline) where work can be done on files checked out from source control.

  • step: A single task. Fundamentally, steps tell Jenkins what to do. For example, to execute the shell command make, use the sh step: sh 'make'.

    When a plugin extends the Pipeline DSL, that typically means the plugin has implemented a new step.

  • stage: A stage is a step for defining a conceptually distinct subset of the entire Pipeline, for example: "Build", "Test", and "Deploy". A stage is used by many plugins to visualize or present Jenkins Pipeline status/progress.