Common Pipeline terms

2 minute read

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 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.