Scripted is a general purpose DSL and executed from the top of a
Jenkinsfile downwards like most traditional scripts in Groovy.
try/catch/throw – https://jenkins.io/doc/book/pipeline/syntax/#flow-control
- Declarative pipelines have a
pipeline block. e.g.
/*... code here ...*/
- executing a scripted pipeline in a Declarative Pipeline
script step takes a block of Scripted Pipeline and executes that in the Declarative Pipeline
Variables can be defined using their type (e.g.
String) or by the keyword
You can think of
def as an alias of
Object and you will understand it in an instant.
See also this on
def vs type.
def is redundant if using a type.
node allocates an executor on a Jenkins node (aka a slave) and runs code in the context of the workspace on that node.
Another wrinkle on
node‘s. There is also the concept of flyweight and heavyweight executors. A flyweight executor is just a thread and runs inside the Java master’s JVM. A heavyweight executor is a process (e.g.
sh ) and will halt the flow on the master so should be allocated to a node. From the docs:
It is recommended to allocate executors to agent machines, rather than on the Jenkins master – to avoid potential security vulnerabilities, Out-Of-Memory and other performance issues. To do this, configure the “# of executors” to ‘0’ on the “master” node (by default this setting is ‘2’).
See also https://support.cloudbees.com/hc/en-us/articles/360012808951-Pipeline-Difference-between-flyweight-and-heavyweight-Executors
stage creates a labelled block and show up as columns in the Pipeline Stage view.
See also Jenkins: milestone plugin and this post on Stage vs Lock vs Milestone.
A step is a single action. When a step succeeds it moves onto the next step. When a step fails to execute correctly the Pipeline will fail.
Note also the keyword