Goal
Run multiple stages of a declarative Jenkins pipeline on the same node.
Setup
This is just a minimal example to show the p
You could define stages inside a script block. Those stages are kind of sub-stages of a parent stage running in a given agent. That was the approach that I had to use in a similar use case than yours.
#!groovy
windowsNode = 'windows'
pipeline {
agent none
stages {
stage('Stage A') {
agent {
label windowsNode
}
steps {
script {
stage('Stage 1') {
windowsNode = NODE_NAME
echo "windowsNode: $windowsNode, NODE_NAME: $NODE_NAME"
}
stage('Stage 2') {
echo "windowsNode: $windowsNode, NODE_NAME: $NODE_NAME"
}
}
}
}
}
}