Details
-
Story
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
None
-
-
Declarative - 1.2
Description
This improvement is on the Blue Ocean project roadmap. Check the roadmap page for updates.
Proposal
Note - this is a post-1.0 feature.
Issues like JENKINS-41198 and JENKINS-40699 are among the drivers for this - in the Declarative model, parallel doesn't quite fit in smoothly. We need a better answer for this so that more complicated parallel execution of stages is possible within the model.
I'd previously dabbled with a stage execution dependency graph, originally in Plumber, but am easing away from that now. While I love the idea, I can't find a comfortable way to make it work without it being required for every stage, which is a non-option - i.e., I don't think it's a good idea to always require that every single stage has a marker for what stage(s) it can run before or after. So now I'm leaning in the direction of nested stages sections, like this:
pipeline { agent any stages { stage('first') { steps { echo 'first, non-parallel stage' } } stage('top-parallel') { stages { stage('first-parallel') { steps { echo 'First of the parallel stages without further nesting' sleep 60 } } stage('second-parallel') { stages { stage('first-nested-parallel') { steps { echo 'the first of the nested parallel stages' sleep 30 } } stage('second-nested-parallel') { steps { echo 'the second of the nested parallel stages' sleep 30 } } } } } }
So in this scenario, stage('first') runs first. When it completes, stage('top-parallel') starts and immediately goes into its nested stages in parallel. stage('first-parallel') starts and goes for 60 seconds, while stage('second-parallel') starts at the same time and descends into its nested stages in parallel as well.
I don't know yet where I'd allow agent and friends, but within a stage, you would need to have one and only one of steps or stages - i.e., a stage either could have steps it executes or it could be a container for parallel stages.
Actually implementing this will need to be done in tandem with Blue Ocean visualization, of course. And this is for now just raw thoughts, but I wanted to get it written down.
Attachments
Issue Links
- is blocked by
-
JENKINS-42362 Investigate impact of parallel changes for declarative
-
- Resolved
-
-
JENKINS-42364 Editor adaptations for stage based parallel declarative
-
- Resolved
-
- is duplicated by
-
JENKINS-41198 Per parallel branch agent configuration
-
- Closed
-
-
JENKINS-40699 Post-stage/build test results etc doesn't play well with parallel on multiple nodes
-
- Closed
-
- relates to
-
JENKINS-40986 Matrix structure for Declarative Pipeline
-
- Resolved
-
- links to
I was hoping for nested parallels and parallel pipelines, so I could not only do:
but also:
I know that above can be achieved on step level, but step seems to be something small and is not visualised in blue ocean
I'm now aware that those are separated issues and watching them, but initially is seemed like this one could solve those too.