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