[JIRA] (JENKINS-46809) Allow sequential stages inside parallel in Declarative syntax

1,103 views
Skip to first unread message

jdumay@cloudbees.com (JIRA)

unread,
Mar 14, 2018, 7:26:03 PM3/14/18
to jenkinsc...@googlegroups.com
James Dumay updated an issue
 
Jenkins / New Feature JENKINS-46809
Allow sequential stages inside parallel in Declarative syntax
Change By: James Dumay
Summary: Allow sequencial sequential stages inside parallel in Declarative syntax
Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v7.3.0#73011-sha1:3c73d0e)
Atlassian logo

daniel@resolutiongames.com (JIRA)

unread,
Mar 22, 2018, 11:04:11 AM3/22/18
to jenkinsc...@googlegroups.com
Daniel Hagström commented on New Feature JENKINS-46809
 
Re: Allow sequential stages inside parallel in Declarative syntax

Andrew Bayer Would you dare to guess for an ETA on this? I'm think I'm basically looking at the same use case as Matt Kunze (as he states here), where I'd split first by platform (and thereby node) and then perform sequential steps for that platform/node.

rachit.k.agrawal@gmail.com (JIRA)

unread,
Mar 23, 2018, 4:11:07 AM3/23/18
to jenkinsc...@googlegroups.com

Daniel Hagström Same here. I am also looking for the same use case.

Is there any way we can pitch in to speed it up?

scm_issue_link@java.net (JIRA)

unread,
Mar 28, 2018, 10:15:03 AM3/28/18
to jenkinsc...@googlegroups.com

Code changed in jenkins
User: Andrew Bayer
Path:
pipeline-model-api/src/main/java/org/jenkinsci/plugins/pipeline/modeldefinition/ast/ModelASTStage.java
pipeline-model-api/src/main/resources/ast-schema.json
pipeline-model-definition/src/main/groovy/org/jenkinsci/plugins/pipeline/modeldefinition/model/Stage.groovy
pipeline-model-definition/src/main/groovy/org/jenkinsci/plugins/pipeline/modeldefinition/parser/JSONParser.groovy
pipeline-model-definition/src/main/groovy/org/jenkinsci/plugins/pipeline/modeldefinition/parser/ModelParser.groovy
pipeline-model-definition/src/main/groovy/org/jenkinsci/plugins/pipeline/modeldefinition/parser/RuntimeASTTransformer.groovy
pipeline-model-definition/src/main/groovy/org/jenkinsci/plugins/pipeline/modeldefinition/validator/ModelValidatorImpl.groovy
pipeline-model-definition/src/main/resources/org/jenkinsci/plugins/pipeline/modeldefinition/Messages.properties
pipeline-model-definition/src/main/resources/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy
pipeline-model-definition/src/test/java/org/jenkinsci/plugins/pipeline/modeldefinition/AbstractModelDefTest.java
pipeline-model-definition/src/test/java/org/jenkinsci/plugins/pipeline/modeldefinition/AgentTest.java
pipeline-model-definition/src/test/java/org/jenkinsci/plugins/pipeline/modeldefinition/BasicModelDefTest.java
pipeline-model-definition/src/test/java/org/jenkinsci/plugins/pipeline/modeldefinition/DeclarativeUpgradeTest.java
pipeline-model-definition/src/test/java/org/jenkinsci/plugins/pipeline/modeldefinition/EnvironmentTest.java
pipeline-model-definition/src/test/java/org/jenkinsci/plugins/pipeline/modeldefinition/PostStageTest.java
pipeline-model-definition/src/test/java/org/jenkinsci/plugins/pipeline/modeldefinition/ToolsTest.java
pipeline-model-definition/src/test/java/org/jenkinsci/plugins/pipeline/modeldefinition/ValidatorTest.java
pipeline-model-definition/src/test/java/org/jenkinsci/plugins/pipeline/modeldefinition/WhenStageTest.java
pipeline-model-definition/src/test/java/org/jenkinsci/plugins/pipeline/modeldefinition/parser/ExecuteConvertedTest.java
pipeline-model-definition/src/test/resources/agentOnGroup.groovy
pipeline-model-definition/src/test/resources/environmentInGroup.groovy
pipeline-model-definition/src/test/resources/errors/emptyStagesInGroup.groovy
pipeline-model-definition/src/test/resources/errors/parallelStagesAndGroups.groovy
pipeline-model-definition/src/test/resources/errors/parallelStagesGroupsDeepNesting.groovy
pipeline-model-definition/src/test/resources/errors/parallelStagesStepsAndGroups.groovy
pipeline-model-definition/src/test/resources/errors/parallelStepsAndGroups.groovy
pipeline-model-definition/src/test/resources/errors/topLevelStageGroupsDeepNesting.groovy
pipeline-model-definition/src/test/resources/json/agentOnGroup.json
pipeline-model-definition/src/test/resources/json/errors/parallelStagesAndGroups.json
pipeline-model-definition/src/test/resources/json/errors/parallelStagesGroupsDeepNesting.json
pipeline-model-definition/src/test/resources/json/errors/parallelStagesStepsAndGroups.json
pipeline-model-definition/src/test/resources/json/errors/parallelStepsAndGroups.json
pipeline-model-definition/src/test/resources/json/errors/topLevelStageGroupsDeepNesting.json
pipeline-model-definition/src/test/resources/json/parallelStagesGroupsAndStages.json
pipeline-model-definition/src/test/resources/json/topLevelStageGroup.json
pipeline-model-definition/src/test/resources/org/jenkinsci/plugins/pipeline/modeldefinition/DeclarativeUpgradeTest/parallelAddsGroupsExecutionModelActionUpgrade.zip
pipeline-model-definition/src/test/resources/parallelStagesGroupsAndStages.groovy
pipeline-model-definition/src/test/resources/postStage/groupLocalAll.groovy
pipeline-model-definition/src/test/resources/postStage/postInParallelAndSequential.groovy
pipeline-model-definition/src/test/resources/toolsInGroup.groovy
pipeline-model-definition/src/test/resources/topLevelStageGroup.groovy
pipeline-model-definition/src/test/resources/when/simpleGroupWhen.groovy
http://jenkins-ci.org/commit/pipeline-model-definition-plugin/78500b34f4c4f7c2b7089ac995c0269c32da644b
Log:
[FIXED JENKINS-46809] Add sequential groups of parallel stages

scm_issue_link@java.net (JIRA)

unread,
Mar 28, 2018, 10:40:04 AM3/28/18
to jenkinsc...@googlegroups.com


Log:
[FIXED JENKINS-46809] Add sequential groups of parallel stages

scm_issue_link@java.net (JIRA)

unread,
Apr 24, 2018, 1:20:06 PM4/24/18
to jenkinsc...@googlegroups.com


Log:
[FIXED JENKINS-46809] Add sequential groups of parallel stages

scm_issue_link@java.net (JIRA)

unread,
Apr 30, 2018, 2:08:05 PM4/30/18
to jenkinsc...@googlegroups.com


Log:
[FIXED JENKINS-46809] Add sequential groups of parallel stages

scm_issue_link@java.net (JIRA)

unread,
May 3, 2018, 4:44:04 PM5/3/18
to jenkinsc...@googlegroups.com


Log:
[FIXED JENKINS-46809] Add sequential groups of parallel stages

*NOTE:* This service been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

Functionality will be removed from GitHub.com on January 31st, 2019.

rachit.k.agrawal@gmail.com (JIRA)

unread,
May 17, 2018, 5:44:03 AM5/17/18
to jenkinsc...@googlegroups.com

I see there are multiple PRs raised. Is it available now? Anyway we can use this functionality?

dineshk7sg@gmail.com (JIRA)

unread,
May 24, 2018, 5:29:05 AM5/24/18
to jenkinsc...@googlegroups.com

I am facing the similar problem as mentioned here - https://issues.jenkins-ci.org/browse/JENKINS-39119 - when having the node block inside the stage block in a parallel tasks (why node block inside stage block, because we don't want to create duplicate stage for each task), the node get freed after the first stage and it become available for other jobs. Please find the below code, where the node get occupied by another job after the stage `first`. 

def stages = ["first","second"]

def tasks = [:]

for (item in stage) {
  stage (item) {
    task["win"] = {
      node(mynode) {
        bat 'echo "check"'
      }
    }
    task["mac"] = {
      node(mynode) {
        sh 'echo "check"'
      }
    }
    parallel task
  }
}

And in the above ticket its mentioned the fix will stated in this ticket. However I want to check is the fix is only for the declarative pipeline syntax?. 

dineshk7sg@gmail.com (JIRA)

unread,
May 24, 2018, 5:30:04 AM5/24/18
to jenkinsc...@googlegroups.com
Dineshkumar Ayyavoo edited a comment on New Feature JENKINS-46809
I am facing the similar problem as mentioned here - https://issues.jenkins-ci.org/browse/JENKINS-39119 - when having the node block inside the stage block in a parallel tasks (why node block inside stage block, because we don't want to create duplicate stage for each task), the node get freed after the first stage and it become available for other jobs. Please find the below code, where the node get occupied by another job after the stage `first`. 
{code:java}

def stages = ["first","second"]

def tasks = [:]

for (item in stage) {
  stage (item) {
    task["win"] = {
      node( mynode mywinnode ) {

        bat 'echo "check"'
      }
    }
    task["mac"] = {
      node( mynode mymacnode ) {

        sh 'echo "check"'
      }
    }
    parallel task
  }
}{code}

And in the above ticket its mentioned the fix will stated in this ticket. However I want to check is the fix is only for the declarative pipeline syntax?. 

dineshk7sg@gmail.com (JIRA)

unread,
May 24, 2018, 5:31:04 AM5/24/18
to jenkinsc...@googlegroups.com
Dineshkumar Ayyavoo edited a comment on New Feature JENKINS-46809
I am facing the similar problem as mentioned here - https://issues.jenkins-ci.org/browse/JENKINS-39119 - when having the node block inside the stage block in a parallel tasks (why node block inside stage block, because we don't want to create duplicate stage for each task), the node get freed after the first stage and it become available for other jobs. Please find the below code, where the node get occupied by another job after the stage `first`. 
{code:java}
def stages = ["first","second"]

def tasks = [:]

for (item in stage stages ) {

  stage (item) {
    task["win"] = {
      node(mywinnode) {

        bat 'echo "check"'
      }
    }
    task["mac"] = {
      node(mymacnode) {

        sh 'echo "check"'
      }
    }
    parallel task
  }
}{code}
And in the above ticket its mentioned the fix will stated in this ticket. However I want to check is the fix is only for the declarative pipeline syntax?. 

dineshk7sg@gmail.com (JIRA)

unread,
May 24, 2018, 5:31:31 AM5/24/18
to jenkinsc...@googlegroups.com
Dineshkumar Ayyavoo edited a comment on New Feature JENKINS-46809
I am facing the similar problem as mentioned here - https://issues.jenkins-ci.org/browse/JENKINS-39119 - when having the node block inside the stage block in a parallel tasks (why node block inside stage block, because we don't want to create duplicate stage for each task), the node get freed after the first stage and it become available for other jobs. Please find the below code, where the node get occupied by another job after the stage `first`. 
{code:java}
def stages = ["first","second"]

def tasks = [:]

for (item in stages) {
  stage (item) {
    task     tasks ["win"] = {
      node(mywinnode) {
        bat 'echo "check"'
      }
    }
    task     tasks ["mac"] = {

      node(mymacnode) {
        sh 'echo "check"'
      }
    }
    parallel task
  }
}{code}
And in the above ticket its mentioned the fix will stated in this ticket. However I want to check is the fix is only for the declarative pipeline syntax?. 

luckyhorang@nate.com (JIRA)

unread,
May 28, 2018, 4:41:02 AM5/28/18
to jenkinsc...@googlegroups.com

rachit.k.agrawal@gmail.com (JIRA)

unread,
May 28, 2018, 5:15:03 AM5/28/18
to jenkinsc...@googlegroups.com

thxmasj@gmail.com (JIRA)

unread,
Jun 12, 2018, 2:36:03 PM6/12/18
to jenkinsc...@googlegroups.com

Andrew Bayer: Would it be possible to provide a rough ETA on this issue? I need to consider writing my own multi-stage locking mechanism if this one won't arrive soon. BR.

richard@whiuk.com (JIRA)

unread,
Jun 12, 2018, 5:42:03 PM6/12/18
to jenkinsc...@googlegroups.com

It looks like it's getting closer - it's code review at https://github.com/jenkinsci/pipeline-model-definition-plugin/pull/227 with some suggestion it might be released in the next week or two.

andrew.bayer@gmail.com (JIRA)

unread,
Jun 12, 2018, 9:46:05 PM6/12/18
to jenkinsc...@googlegroups.com

Yup, that sounds about right - very sorry for the delays!

andrew.bayer@gmail.com (JIRA)

unread,
Jun 13, 2018, 10:09:05 AM6/13/18
to jenkinsc...@googlegroups.com
Andrew Bayer updated New Feature JENKINS-46809
 

(finally) merged! JENKINS-45455 should be ready to merge shortly as well, and then I'd expect 1.3 to be out within a couple days (gotta finish docs polish/work for JENKINS-45455 first).

Change By: Andrew Bayer
Status: In Review Resolved
Resolution: Fixed

dineshk7sg@gmail.com (JIRA)

unread,
Jun 13, 2018, 3:42:10 PM6/13/18
to jenkinsc...@googlegroups.com

andrew.bayer@gmail.com (JIRA)

unread,
Jun 13, 2018, 3:55:03 PM6/13/18
to jenkinsc...@googlegroups.com

Dineshkumar Ayyavoo - yes, you will be able to have a parent stage with an agent and then a sequence of stages within that parent that automatically use the same agent/workspace/executor without freeing up the executor in between.

dineshk7sg@gmail.com (JIRA)

unread,
Jun 13, 2018, 3:58:18 PM6/13/18
to jenkinsc...@googlegroups.com

luckyhorang@nate.com (JIRA)

unread,
Jun 15, 2018, 5:11:04 AM6/15/18
to jenkinsc...@googlegroups.com
Hokwang Lee updated an issue
 
Change By: Hokwang Lee
Attachment: image-2018-06-15-18-09-57-864.png

luckyhorang@nate.com (JIRA)

unread,
Jun 15, 2018, 5:11:10 AM6/15/18
to jenkinsc...@googlegroups.com
Hokwang Lee commented on New Feature JENKINS-46809
 
Re: Allow sequential stages inside parallel in Declarative syntax

I testest shortly before, but I guess there's a visualization problem in here.

I use Jenkinsfile using official doc

https://jenkins.io/doc/book/pipeline/syntax/#parallel-stages-example

 

and it shows like below. I want to see nested stage.

nimrod7@gmail.com (JIRA)

unread,
Jun 15, 2018, 10:54:02 AM6/15/18
to jenkinsc...@googlegroups.com

Will the functionality will also be available in scripted pipelines?

andrew.bayer@gmail.com (JIRA)

unread,
Jun 15, 2018, 10:57:03 AM6/15/18
to jenkinsc...@googlegroups.com

Hokwang Lee - the visualization is coming later on the Blue Ocean side - you can follow JENKINS-49050 for progress on that.

Kasia Gauza - you can already do nested stages in Scripted, though as with Declarative sequential stages, you won't get visualization for it in Blue Ocean until JENKINS-49050 is done.

richard@whiuk.com (JIRA)

unread,
Jun 17, 2018, 9:46:10 AM6/17/18
to jenkinsc...@googlegroups.com

When attempting a slightly complex flow, I get:
WorkflowScript: 954: Parallel stages or branches can only be included in a top-level stage. @ line 954, column 17.
stage('Destroy old QA1 deployment')
Andrew Bayer Is there a good reason for such a restriction?

For example, when using this to resolve https://issues.jenkins-ci.org/browse/JENKINS-43336 it's desirable to do:

stage('A') {
  options {
    lock('A-lock')
{{  }}}
  stages {
    stage('A-Setup') {
      parallel {
        stage('A1') {
          steps {
            sh('setup.sh a1')
          }}}{{
{{        }}}
        stage('A2') {
          steps {{{}}
            sh('setup.sh a2')
          }}}{{
        }}}{{
{{      }}}
{{    }}}
    stage('A-Test') {
      steps {{{}}
        sh('test.sh')
      }}}{{
    }}}{{{{}}
{{  }}}
}

 

However, this is blocked, and it's not obvious to me why such a restriction exists.

richard@whiuk.com (JIRA)

unread,
Jun 17, 2018, 9:48:19 AM6/17/18
to jenkinsc...@googlegroups.com
Richard Whitehouse edited a comment on New Feature JENKINS-46809
When attempting a slightly complex flow, I get:
WorkflowScript: 954: Parallel stages or branches can only be included in a top-level stage. @ line 954, column 17.
                   stage('Destroy old QA1 deployment')
[~abayer] Is there a good reason for such a restriction?


For example, when using this to resolve https://issues.jenkins-ci.org/browse/JENKINS-43336 it's desirable to
do:

{{
have an outer stage ('A') \{}}
{{  options \{}}
{{   
which holds a lock ('A-lock')}}
{{  }}}
{{ 
, which contains two stages \{}}
{{    stage('A-Setup') \{}}
{{     
, one of which does a couple of things in parallel \{}}
{{        stage('A1') \{}}
{{          steps \{}}
{{            sh('setup
, and the other of which runs some stuff - e . sh a1')}}
{{          }}}{{}}
{{        }}}
{{        stage('A2') \{}}
{{          steps \{}}{{}}
{{            sh('setup
g . sh a2')}}
{{          }}}{{}}
{{        }}}{{}}
{{      }}}
{{    }}}
{{    stage('A-Test') \{}}
{{      steps \{}}{{}}
{{        sh('
setting up two test rigs in parallel, and then running some tests across both of them . sh')}}
{{      }}}{{}}
{{    }}}{{}}{{}}
{{  }}}
{{}}}

 

However, this is blocked, and it's not obvious to me why such a restriction exists.

andrew.bayer@gmail.com (JIRA)

unread,
Jun 19, 2018, 2:23:03 PM6/19/18
to jenkinsc...@googlegroups.com

We don't support arbitrarily deep nesting of parallel or sequential stages for a number of reasons - visualization challenges most prominently.

bitwiseman@gmail.com (JIRA)

unread,
Jun 19, 2018, 2:33:04 PM6/19/18
to jenkinsc...@googlegroups.com

Richard Whitehouse 

You make a good point and I think there's other discussion to be had around this.  Could you open a JIRA for this?  

 

jbriden@cloudbees.com (JIRA)

unread,
Jun 20, 2018, 12:25:03 AM6/20/18
to jenkinsc...@googlegroups.com

Richard Whitehouse, can you please give me an example of why you would set up your pipeline that way? Why not create a sibling stage with nested stages? It seems unnecessarily complex. (I'm the blue ocean and pipeline product manager, which is why I need to better understand the use case.)

chantivlad@yahoo.fr (JIRA)

unread,
Jun 21, 2018, 4:39:14 AM6/21/18
to jenkinsc...@googlegroups.com

By creating a Pipeline job with the content of the ticket description:

pipeline {
  agent none
  stages {
    stage('Parallel stuff') {
      parallel 'branch 1' : {
        // Sequencial stages
        stage('Branch 1 stage 1'){
            agent any
            steps {
                echo "In branch 1 stage 1"
            }
        }
        stage('Branch 1 stage 2'){
            agent none // With that kind of sequencial stage, we can change the agent to run on
            steps {
                sleep 30
            }
        }
      }, 'branch 2': { // Parallel execution
        stage('Branch 2 stage 1'){
            agent any
            steps {
                echo "In branch 2 stage 1"
                sleep 60
            }
        }
      }
    }
  }
}

i get following errors:

 

WorkflowScript: 4: Expected a block for parallel @ line 4, column 5.
       stage('Parallel stuff') {
       ^

WorkflowScript: 4: Expected one of "steps", "stages", or "parallel" for stage "Parallel stuff" @ line 4, column 5.
       stage('Parallel stuff') {
       ^

2 errors

i am using

Blue Ocean 1.6.0 +  Pipeline 2.5 +

Pipeline Graph Analysis Plugin
Provides a REST API to access pipeline and pipeline run data.
1.6
Pipeline implementation for Blue Ocean
This plugin is a part of BlueOcean Plugin
1.6.0
Pipeline SCM API for Blue Ocean
This plugin is a part of BlueOcean Plugin
1.6.0
Pipeline: API
Plugin that defines Pipeline API.
2.28
Pipeline: Basic Steps
Commonly used steps for Pipelines.
2.9
Pipeline: Build Step
Adds the Pipeline step build to trigger builds of other jobs.
2.7
Pipeline: Declarative
An opinionated, declarative Pipeline.
1.3
Pipeline: Declarative Agent API
Replaced by Pipeline: Declarative Extension Points API plugin.
1.1.1
Pipeline: Declarative Extension Points API
APIs for extension points used in Declarative Pipelines.
1.3
Pipeline: GitHub Groovy Libraries
Allows Pipeline Grrovy libraries to be loaded on the fly from GitHub.
1.0
Pipeline: Groovy
Pipeline execution engine based on continuation passing style transformation of Groovy scripts.
2.53
Pipeline: Input Step
Adds the Pipeline step input to wait for human input or approval.
2.8
Pipeline: Job
Defines a new job type for pipelines and provides their generic user interface.
2.21
Pipeline: Milestone Step
Plugin that provides the milestone step
1.3.1
Pipeline: Model API
Model API for Declarative Pipeline.
1.3
Pipeline: Multibranch
Enhances Pipeline plugin to handle branches better by automatically grouping builds from different branches.
2.19
Pipeline: Nodes and Processes
Pipeline steps locking agents and workspaces, and running external processes that may survive a Jenkins restart or slave reconnection.
2.19
Pipeline: REST API Plugin
Provides a REST API to access pipeline and pipeline run data.
2.10
Pipeline: SCM Step
Adds a Pipeline step to check out or update working sources from various SCMs (version control).
2.6
Pipeline: Shared Groovy Libraries
Shared libraries for Pipeline scripts.
2.9
Pipeline: Stage Step
Adds the Pipeline step stage to delineate portions of a build.
2.3
Pipeline: Stage Tags Metadata
Library plugin for Pipeline stage tag metadata.
1.3
Pipeline: Stage View Plugin
Pipeline Stage View Plugin.
2.10
Pipeline: Step API
API for asynchronous build step primitive.
2.15
Pipeline: Supporting APIs
Common utility implementations to build Pipeline Plugin
2.18

chantivlad@yahoo.fr (JIRA)

unread,
Jun 21, 2018, 4:41:53 AM6/21/18
to jenkinsc...@googlegroups.com
chanti vlad edited a comment on New Feature JENKINS-46809
By creating a Pipeline job with the content of the ticket description:
{code:java}

pipeline {
  agent none
  stages {
    stage('Parallel stuff') {
      parallel 'branch 1' : {
        // Sequencial stages
        stage('Branch 1 stage 1'){
            agent any
            steps {
                echo "In branch 1 stage 1"
            }
        }
        stage('Branch 1 stage 2'){
            agent none // With that kind of sequencial stage, we can change the agent to run on
            steps {
                sleep 30
            }
        }
      }, 'branch 2': { // Parallel execution
        stage('Branch 2 stage 1'){
            agent any
            steps {
                echo "In branch 2 stage 1"
                sleep 60
            }
        }
      }
    }
  }
}
{code}
i get following errors:

 
{code:java}

WorkflowScript: 4: Expected a block for parallel @ line 4, column 5.
       stage('Parallel stuff') {
       ^

WorkflowScript: 4: Expected one of "steps", "stages", or "parallel" for stage "Parallel stuff" @ line 4, column 5.
       stage('Parallel stuff') {
       ^

2 errors
{code}

i am using

Blue Ocean 1.6.0 +  Pipeline 2.5 +
|[Pipeline Graph Analysis Plugin|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Graph+Analysis+Plugin]
Provides a REST API to access pipeline and pipeline run data.|
[ 1.6| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/pipeline-graph-analysis/thirdPartyLicenses]|
|[Pipeline implementation for Blue Ocean|https://wiki.jenkins-ci.org/display/JENKINS/Blue+Ocean+Plugin]
This plugin is a part of BlueOcean Plugin|
[ 1.6.0| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/blueocean-pipeline-api-impl/thirdPartyLicenses]|
|[Pipeline SCM API for Blue Ocean|https://wiki.jenkins-ci.org/display/JENKINS/Blue+Ocean+Plugin]
This plugin is a part of BlueOcean Plugin|
[ 1.6.0| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/blueocean-pipeline-scm-api/thirdPartyLicenses]|
|[Pipeline: API|https://wiki.jenkins.io/display/JENKINS/Pipeline+API+Plugin]
Plugin that defines Pipeline API.|
[ 2.28| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/workflow-api/thirdPartyLicenses]|
|[Pipeline: Basic Steps|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Basic+Steps+Plugin]
Commonly used steps for Pipelines.|
[ 2.9| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/workflow-basic-steps/thirdPartyLicenses]|
|[Pipeline: Build Step|https://wiki.jenkins.io/display/JENKINS/Pipeline+Build+Step+Plugin]
Adds the Pipeline step {{build}} to trigger builds of other jobs.|
[ 2.7| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/pipeline-build-step/thirdPartyLicenses]|
|[Pipeline: Declarative|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Model+Definition+Plugin]
An opinionated, declarative Pipeline.|
[ 1.3| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/pipeline-model-definition/thirdPartyLicenses]|
|[Pipeline: Declarative Agent API|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Model+Definition+Plugin]
Replaced by Pipeline: Declarative Extension Points API plugin.|
[ 1.1.1| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/pipeline-model-declarative-agent/thirdPartyLicenses]|
|[Pipeline: Declarative Extension Points API|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Model+Definition+Plugin]
APIs for extension points used in Declarative Pipelines.|
[ 1.3| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/pipeline-model-extensions/thirdPartyLicenses]|
|[Pipeline: GitHub Groovy Libraries|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+GitHub+Library+Plugin]
Allows Pipeline Grrovy libraries to be loaded on the fly from GitHub.|
[ 1.0| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/pipeline-github-lib/thirdPartyLicenses]|
|[Pipeline: Groovy|https://wiki.jenkins.io/display/JENKINS/Pipeline+Groovy+Plugin]
Pipeline execution engine based on continuation passing style transformation of Groovy scripts.|
[ 2.53| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/workflow-cps/thirdPartyLicenses]|
|[Pipeline: Input Step|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Input+Step+Plugin]
Adds the Pipeline step {{input}} to wait for human input or approval.|
[ 2.8| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/pipeline-input-step/thirdPartyLicenses]|
|[Pipeline: Job|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Job+Plugin]
Defines a new job type for pipelines and provides their generic user interface.|
[ 2.21| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/workflow-job/thirdPartyLicenses]|
|[Pipeline: Milestone Step|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Milestone+Step+Plugin]
Plugin that provides the milestone step|
[ 1.3.1| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/pipeline-milestone-step/thirdPartyLicenses]|
|[Pipeline: Model API|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Model+Definition+Plugin]
Model API for Declarative Pipeline.|
[ 1.3| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/pipeline-model-api/thirdPartyLicenses]|
|[Pipeline: Multibranch|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Multibranch+Plugin]
Enhances Pipeline plugin to handle branches better by automatically grouping builds from different branches.|
[ 2.19| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/workflow-multibranch/thirdPartyLicenses]|
|[Pipeline: Nodes and Processes|https://wiki.jenkins.io/display/JENKINS/Pipeline+Nodes+and+Processes+Plugin]
Pipeline steps locking agents and workspaces, and running external processes that may survive a Jenkins restart or slave reconnection.|
[ 2.19| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/workflow-durable-task-step/thirdPartyLicenses]|
|[Pipeline: REST API Plugin|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Stage+View+Plugin]
Provides a REST API to access pipeline and pipeline run data.|
[ 2.10| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/pipeline-rest-api/thirdPartyLicenses]|
|[Pipeline: SCM Step|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+SCM+Step+Plugin]
Adds a Pipeline step to check out or update working sources from various SCMs (version control).|
[ 2.6| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/workflow-scm-step/thirdPartyLicenses]|
|[Pipeline: Shared Groovy Libraries|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Shared+Groovy+Libraries+Plugin]
Shared libraries for Pipeline scripts.|
[ 2.9| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/workflow-cps-global-lib/thirdPartyLicenses]|
|[Pipeline: Stage Step|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Stage+Step+Plugin]
Adds the Pipeline step {{stage}} to delineate portions of a build.|
[ 2.3| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/pipeline-stage-step/thirdPartyLicenses]|
|[Pipeline: Stage Tags Metadata|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Model+Definition+Plugin]
Library plugin for Pipeline stage tag metadata.|
[ 1.3| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/pipeline-stage-tags-metadata/thirdPartyLicenses]|
|[Pipeline: Stage View Plugin|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Stage+View+Plugin]
Pipeline Stage View Plugin.|
[ 2.10| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/pipeline-stage-view/thirdPartyLicenses]|
|[Pipeline: Step API|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Step+API+Plugin]
API for asynchronous build step primitive.|
[ 2.15| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/workflow-step-api/thirdPartyLicenses]|
|[Pipeline: Supporting APIs|https://wiki.jenkins.io/display/JENKINS/Pipeline+Supporting+APIs+Plugin]
Common utility implementations to build Pipeline Plugin|
[ 2.18| https://jenkins-playground.autolm.intel.com/pluginManager/plugin/workflow-support/thirdPartyLicenses]|

chantivlad@yahoo.fr (JIRA)

unread,
Jun 21, 2018, 4:47:04 AM6/21/18
to jenkinsc...@googlegroups.com
Jenkins 2.121.1 + Blue Ocean 1.6.0 +  Pipeline 2.5 +

|[Pipeline Graph Analysis Plugin|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Graph+Analysis+Plugin]
Provides a REST API to access pipeline and pipeline run data.|1.6|
|[Pipeline implementation for Blue Ocean|https://wiki.jenkins-ci.org/display/JENKINS/Blue+Ocean+Plugin]
This plugin is a part of BlueOcean Plugin|1.6.0|
|[Pipeline SCM API for Blue Ocean|https://wiki.jenkins-ci.org/display/JENKINS/Blue+Ocean+Plugin]
This plugin is a part of BlueOcean Plugin|1.6.0|
|[Pipeline: API|https://wiki.jenkins.io/display/JENKINS/Pipeline+API+Plugin]
Plugin that defines Pipeline API.|2.28|
|[Pipeline: Basic Steps|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Basic+Steps+Plugin]
Commonly used steps for Pipelines.|2.9|
|[Pipeline: Build Step|https://wiki.jenkins.io/display/JENKINS/Pipeline+Build+Step+Plugin]
Adds the Pipeline step {{build}} to trigger builds of other jobs.|2.7|
|[Pipeline: Declarative|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Model+Definition+Plugin]
An opinionated, declarative Pipeline.|1.3|
|[Pipeline: Declarative Agent API|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Model+Definition+Plugin]
Replaced by Pipeline: Declarative Extension Points API plugin.|1.1.1|
|[Pipeline: Declarative Extension Points API|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Model+Definition+Plugin]
APIs for extension points used in Declarative Pipelines.|1.3|
|[Pipeline: GitHub Groovy Libraries|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+GitHub+Library+Plugin]
Allows Pipeline Grrovy libraries to be loaded on the fly from GitHub.|1.0|
|[Pipeline: Groovy|https://wiki.jenkins.io/display/JENKINS/Pipeline+Groovy+Plugin]
Pipeline execution engine based on continuation passing style transformation of Groovy scripts.|2.53|
|[Pipeline: Input Step|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Input+Step+Plugin]
Adds the Pipeline step {{input}} to wait for human input or approval.|2.8|
|[Pipeline: Job|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Job+Plugin]
Defines a new job type for pipelines and provides their generic user interface.|2.21|
|[Pipeline: Milestone Step|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Milestone+Step+Plugin]
Plugin that provides the milestone step|1.3.1|
|[Pipeline: Model API|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Model+Definition+Plugin]
Model API for Declarative Pipeline.|1.3|
|[Pipeline: Multibranch|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Multibranch+Plugin]
Enhances Pipeline plugin to handle branches better by automatically grouping builds from different branches.|2.19|
|[Pipeline: Nodes and Processes|https://wiki.jenkins.io/display/JENKINS/Pipeline+Nodes+and+Processes+Plugin]
Pipeline steps locking agents and workspaces, and running external processes that may survive a Jenkins restart or slave reconnection.|2.19|
|[Pipeline: REST API Plugin|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Stage+View+Plugin]
Provides a REST API to access pipeline and pipeline run data.|2.10|
|[Pipeline: SCM Step|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+SCM+Step+Plugin]
Adds a Pipeline step to check out or update working sources from various SCMs (version control).|2.6|
|[Pipeline: Shared Groovy Libraries|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Shared+Groovy+Libraries+Plugin]
Shared libraries for Pipeline scripts.|2.9|
|[Pipeline: Stage Step|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Stage+Step+Plugin]
Adds the Pipeline step {{stage}} to delineate portions of a build.|2.3|
|[Pipeline: Stage Tags Metadata|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Model+Definition+Plugin]
Library plugin for Pipeline stage tag metadata.|1.3|
|[Pipeline: Stage View Plugin|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Stage+View+Plugin]
Pipeline Stage View Plugin.|2.10|
|[Pipeline: Step API|https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Step+API+Plugin]
API for asynchronous build step primitive.|2.15|
|[Pipeline: Supporting APIs|https://wiki.jenkins.io/display/JENKINS/Pipeline+Supporting+APIs+Plugin]
Common utility implementations to build Pipeline Plugin|2.18|

wmknapik@gmail.com (JIRA)

unread,
Jun 21, 2018, 5:07:02 AM6/21/18
to jenkinsc...@googlegroups.com

can you please give me an example of why you would set up your pipeline that way? Why not create a sibling stage with nested stages? It seems unnecessarily complex.

The question you should be asking is "why are we creating arbitrary restrictions ?".

Restricting actual functionality for the sake of easier visualization in Blue Ocean is not an answer you should find acceptable.

The fact that you see a pipeline as unnecessarily complex doesn't mean that it is, or that it's wrong, or that it should be prohibited.

If you're having trouble with presentation, look how TeamCity does it - it can present any pipeline you can imagine, with no issues.

vossad01@gmail.com (JIRA)

unread,
Jun 22, 2018, 3:08:05 PM6/22/18
to jenkinsc...@googlegroups.com

Jenn Briden One use reason is to better control the executing node.

In my example I have a sequential stage where each stage in the sequence may execute on a different node.  One of those stages that I would like to split into two stages, but can only do so if they execute in the same workspace because the second stage will depend on the local output of the first.  If I could have a nested sequential stage, I could define the agent on the nested sequential stage each of its stages would then share that workspace.

My exiting alternative would be to stash the outputs form the first stage and unstash them on the 2nd, which (untested) seems like a lot more overhead and complexity than I justify for splitting the stage (especially if I were to split it into more than 2 stages).

oliver.santschi@bit.admin.ch (JIRA)

unread,
Sep 14, 2018, 12:03:05 PM9/14/18
to jenkinsc...@googlegroups.com

Does this example works for anyone? 

Do I need a special version for a special plugin?

This message was sent by Atlassian Jira (v7.11.2#711002-sha1:fdc329d)

sheeeng@gmail.com (JIRA)

unread,
Sep 27, 2018, 2:45:06 AM9/27/18
to jenkinsc...@googlegroups.com

luckyhorang@nate.com (JIRA)

unread,
Sep 30, 2018, 11:06:05 PM9/30/18
to jenkinsc...@googlegroups.com

bitwiseman@gmail.com (JIRA)

unread,
May 27, 2019, 5:39:08 PM5/27/19
to jenkinsc...@googlegroups.com
Liam Newman closed an issue as Fixed
 
Change By: Liam Newman
Status: Resolved Closed

nroose@gmail.com (JIRA)

unread,
Jun 19, 2019, 2:58:04 PM6/19/19
to jenkinsc...@googlegroups.com
Nick Roosevelt commented on New Feature JENKINS-46809
 
Re: Allow sequential stages inside parallel in Declarative syntax

For what is is worth, I can't figure out if this was done, and if it was, when it was, and what version it is in or how to use it. And also, it seems like if we had the ability to have multiple pipelines for one push, that would help with all of this workload management. I would like to have nested parallelism as well as nested sequence.

 

Reply all
Reply to author
Forward
0 new messages