Can I use the multibranch pipeline plugin that interacts with a user at a stage

28 views
Skip to first unread message

paul b

unread,
Jul 4, 2017, 3:49:33 AM7/4/17
to Jenkins Users
I would like to use the multibranch pipeline plugin and wondered if it can be configured such that when it gets to a stage, lets says deploying to environment, it then interacts with a user.  That interaction being a through the jenkins, email or even jira!  Then after the user interaction response, I would expect it to push it onto the next stage!  Then possibly with further interactions at further stages.  Not sure if the plugin has this capability or even if it is good practice???  

Furthermore I would expect, when the branch is paused at a stage, I would expect that further branches can be pushed on too!

Hope all this makes sense.

Michael Pailloncy

unread,
Jul 4, 2017, 3:59:13 AM7/4/17
to jenkins...@googlegroups.com
Yeah, seems like you want to use the input step (interaction through Jenkins) : https://jenkins.io/doc/pipeline/steps/pipeline-input-step/

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/1ad0acac-8a06-4ea8-84a0-d0de30c112b4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

paul b

unread,
Jul 4, 2017, 4:34:51 AM7/4/17
to Jenkins Users
Brill.  Thanks. I will look into it.


On Tuesday, 4 July 2017 08:59:13 UTC+1, mpapo - Michael Pailloncy wrote:
Yeah, seems like you want to use the input step (interaction through Jenkins) : https://jenkins.io/doc/pipeline/steps/pipeline-input-step/
2017-07-04 9:49 GMT+02:00 paul b <pbla...@gmail.com>:
I would like to use the multibranch pipeline plugin and wondered if it can be configured such that when it gets to a stage, lets says deploying to environment, it then interacts with a user.  That interaction being a through the jenkins, email or even jira!  Then after the user interaction response, I would expect it to push it onto the next stage!  Then possibly with further interactions at further stages.  Not sure if the plugin has this capability or even if it is good practice???  

Furthermore I would expect, when the branch is paused at a stage, I would expect that further branches can be pushed on too!

Hope all this makes sense.

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-use...@googlegroups.com.

paul b

unread,
Jul 4, 2017, 5:06:11 AM7/4/17
to Jenkins Users
Brill.  I have managed to get that to work. I have the following stage

               stage ('test') {
steps {
echo 'test it.'
input 'Ready to go?'
}
}

The problem we have now is that the build consumes one of the executors.  I guess I can farm that off somehow??? 

Michael Pailloncy

unread,
Jul 4, 2017, 5:41:27 AM7/4/17
to jenkins...@googlegroups.com
It seems like you are using the Declarative way to write your pipeline right ? Can you share the full script please. I guess that you are allocating an agent at the top level.

To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/718db123-8f74-4fa7-a812-0736f0026965%40googlegroups.com.

paul b

unread,
Jul 4, 2017, 5:56:24 AM7/4/17
to Jenkins Users
Yeah.  Thats right.  Not tied to using that though.  Not sure why I need to push to using it yet though.

pipeline {
    agent any
    parameters {
        choice(choices: 'SIT\nUAT', description: 'What environment?', name: 'environment')
    }
    tools { 
        maven 'maven 3.3.9'
        //jdk 'jdk8' 
    }
    stages {
    stage ('build') {
steps {
echo 'build it.'
}
}
stage ('test') {
steps {
echo 'test it.'
input 'Ready to go?'
}
}
        stage('deploy to sit') {
            steps {
                echo 'push it to dev.'
            }
        }
        stage("deploy to uat") {
            steps {
                echo 'push it to uat.'

Michael Pailloncy

unread,
Jul 11, 2017, 5:36:02 PM7/11/17
to jenkins...@googlegroups.com
The "agent any" declaration at the top level of your pipeline indeed allocates an executor for the whole pipeline.
You can avoid this allocation with something like : 

pipeline {
    agent none
    parameters {
        choice(choices: 'SIT\nUAT', description: 'What environment?', name: 'environment')
    }
    stages {
        stage ('build') {
            agent any
            tools { 
                maven 'm3'
            }
            steps {
                echo 'build it.'
                sh "mvn --version"
            }
        }
        stage ('test') {            
            steps {
                echo 'test it.'
                input 'Ready to go?'        
            }   
        }       
        stage('deploy to sit') {
            steps {
                echo 'push it to dev.'
            }
        }
        stage("deploy to uat") {
            steps {
                echo 'push it to uat.'
            }
        }
    }
}

Or instead of tools section, you may prefer the withMaven syntax :

...
stage ('build') {
    agent any
    steps {
        echo 'build it.'
        withMaven(maven: 'm3') {
            sh "mvn --version"
        }
    }
}
...



To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/05f9b2eb-aa91-4462-a9fc-91a99d46b4f4%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages