Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-52240

input directive is not respecting when condition

      In a descriptive pipeline I would like to have a user input directive that is only active for a certain branch:

      pipeline{
          agent none
          stages {
              stage ('build') {
                  agent any
                  when { anyOf { branch 'master'; branch 'PR-*' } }
                  steps {echo "build done"}
              }
              stage ('release') {
                  agent any
                  when { branch 'master'}
                  input {message 'Do you want to publish a new release?'}
                  steps {echo "release done"}
              }
          }
       }
      

      Currently the input is raised but the stage is then skipped.

      This could be done with a dedicated stage and the input step, but I would like to use the coding above.

      The beforeAgent options seems not to do the trick.

      when {
        beforeAgent true
        branch 'master'
      }
      

          [JENKINS-52240] input directive is not respecting when condition

          Christopher Fenner created issue -
          Christopher Fenner made changes -
          Description Original: In a pipeline I would like to have a user input directive that is only active for a certain branch:

          {code:java}
          pipeline{
              agent none
              stages {
                  stage ('build') {
                      agent any
                      when { anyOf { branch 'master'; branch 'PR-*' } }
                      steps {echo "build done"}
                  }
                  stage ('release') {
                      agent any
                      when { branch 'master'}
                      input {message 'Do you want to publish a new release?'}
                      steps {echo "release done"}
                  }
              }
           }
          {code}

          This could be done with a dedicated stage and the input *step*, but I would like to use the coding above.
          New: In a pipeline I would like to have a user input directive that is only active for a certain branch:

          {code:groovy}
          pipeline{
              agent none
              stages {
                  stage ('build') {
                      agent any
                      when { anyOf { branch 'master'; branch 'PR-*' } }
                      steps {echo "build done"}
                  }
                  stage ('release') {
                      agent any
                      when { branch 'master'}
                      input {message 'Do you want to publish a new release?'}
                      steps {echo "release done"}
                  }
              }
           }
          {code}

          This could be done with a dedicated stage and the input *step*, but I would like to use the coding above.

          The *beforeAgent* options seems not to do the trick.

          {code:groovy}
          when {
            beforeAgent true
            branch 'master'
          }
          {code}
           
          Christopher Fenner made changes -
          Description Original: In a pipeline I would like to have a user input directive that is only active for a certain branch:

          {code:groovy}
          pipeline{
              agent none
              stages {
                  stage ('build') {
                      agent any
                      when { anyOf { branch 'master'; branch 'PR-*' } }
                      steps {echo "build done"}
                  }
                  stage ('release') {
                      agent any
                      when { branch 'master'}
                      input {message 'Do you want to publish a new release?'}
                      steps {echo "release done"}
                  }
              }
           }
          {code}

          This could be done with a dedicated stage and the input *step*, but I would like to use the coding above.

          The *beforeAgent* options seems not to do the trick.

          {code:groovy}
          when {
            beforeAgent true
            branch 'master'
          }
          {code}
           
          New: In a descriptive pipeline I would like to have a user input directive that is only active for a certain branch:
          {code}
          pipeline{
              agent none
              stages {
                  stage ('build') {
                      agent any
                      when { anyOf { branch 'master'; branch 'PR-*' } }
                      steps {echo "build done"}
                  }
                  stage ('release') {
                      agent any
                      when { branch 'master'}
                      input {message 'Do you want to publish a new release?'}
                      steps {echo "release done"}
                  }
              }
           }
          {code}
          This could be done with a dedicated stage and the input *step*, but I would like to use the coding above.

          The *beforeAgent* options seems not to do the trick.
          {code}
          when {
            beforeAgent true
            branch 'master'
          }
          {code}
          Christopher Fenner made changes -
          Description Original: In a descriptive pipeline I would like to have a user input directive that is only active for a certain branch:
          {code}
          pipeline{
              agent none
              stages {
                  stage ('build') {
                      agent any
                      when { anyOf { branch 'master'; branch 'PR-*' } }
                      steps {echo "build done"}
                  }
                  stage ('release') {
                      agent any
                      when { branch 'master'}
                      input {message 'Do you want to publish a new release?'}
                      steps {echo "release done"}
                  }
              }
           }
          {code}
          This could be done with a dedicated stage and the input *step*, but I would like to use the coding above.

          The *beforeAgent* options seems not to do the trick.
          {code}
          when {
            beforeAgent true
            branch 'master'
          }
          {code}
          New: In a descriptive pipeline I would like to have a user input directive that is only active for a certain branch:
          {code:java}
          pipeline{
              agent none
              stages {
                  stage ('build') {
                      agent any
                      when { anyOf { branch 'master'; branch 'PR-*' } }
                      steps {echo "build done"}
                  }
                  stage ('release') {
                      agent any
                      when { branch 'master'}
                      input {message 'Do you want to publish a new release?'}
                      steps {echo "release done"}
                  }
              }
           }
          {code}
          Currently the input is raised but the stage is then skipped.

           

           

          This could be done with a dedicated stage and the input *step*, but I would like to use the coding above.

          The *beforeAgent* options seems not to do the trick.
          {code:java}
          when {
            beforeAgent true
            branch 'master'
          }
          {code}
          Christopher Fenner made changes -
          Description Original: In a descriptive pipeline I would like to have a user input directive that is only active for a certain branch:
          {code:java}
          pipeline{
              agent none
              stages {
                  stage ('build') {
                      agent any
                      when { anyOf { branch 'master'; branch 'PR-*' } }
                      steps {echo "build done"}
                  }
                  stage ('release') {
                      agent any
                      when { branch 'master'}
                      input {message 'Do you want to publish a new release?'}
                      steps {echo "release done"}
                  }
              }
           }
          {code}
          Currently the input is raised but the stage is then skipped.

           

           

          This could be done with a dedicated stage and the input *step*, but I would like to use the coding above.

          The *beforeAgent* options seems not to do the trick.
          {code:java}
          when {
            beforeAgent true
            branch 'master'
          }
          {code}
          New: In a descriptive pipeline I would like to have a user input directive that is only active for a certain branch:
          {code:java}
          pipeline{
              agent none
              stages {
                  stage ('build') {
                      agent any
                      when { anyOf { branch 'master'; branch 'PR-*' } }
                      steps {echo "build done"}
                  }
                  stage ('release') {
                      agent any
                      when { branch 'master'}
                      input {message 'Do you want to publish a new release?'}
                      steps {echo "release done"}
                  }
              }
           }
          {code}
          Currently the input is raised but the stage is then skipped.


          This could be done with a dedicated stage and the input *step*, but I would like to use the coding above.

          The *beforeAgent* options seems not to do the trick.
          {code:java}
          when {
            beforeAgent true
            branch 'master'
          }
          {code}
          Christopher Fenner made changes -
          Description Original: In a descriptive pipeline I would like to have a user input directive that is only active for a certain branch:
          {code:java}
          pipeline{
              agent none
              stages {
                  stage ('build') {
                      agent any
                      when { anyOf { branch 'master'; branch 'PR-*' } }
                      steps {echo "build done"}
                  }
                  stage ('release') {
                      agent any
                      when { branch 'master'}
                      input {message 'Do you want to publish a new release?'}
                      steps {echo "release done"}
                  }
              }
           }
          {code}
          Currently the input is raised but the stage is then skipped.


          This could be done with a dedicated stage and the input *step*, but I would like to use the coding above.

          The *beforeAgent* options seems not to do the trick.
          {code:java}
          when {
            beforeAgent true
            branch 'master'
          }
          {code}
          New: In a descriptive pipeline I would like to have a user input directive that is only active for a certain branch:
          {code:java}
          pipeline{
              agent none
              stages {
                  stage ('build') {
                      agent any
                      when { anyOf { branch 'master'; branch 'PR-*' } }
                      steps {echo "build done"}
                  }
                  stage ('release') {
                      agent any
                      when { branch 'master'}
                      input {message 'Do you want to publish a new release?'}
                      steps {echo "release done"}
                  }
              }
           }
          {code}
          Currently the input is raised but the stage is then skipped.



          This could be done with a dedicated stage and the input *step*, but I would like to use the coding above.

          The *beforeAgent* options seems not to do the trick.
          {code:java}
          when {
            beforeAgent true
            branch 'master'
          }
          {code}
          Christopher Fenner made changes -
          Link New: This issue duplicates JENKINS-50880 [ JENKINS-50880 ]
          Christopher Fenner made changes -
          Resolution New: Duplicate [ 3 ]
          Status Original: Open [ 1 ] New: Closed [ 6 ]

            abayer Andrew Bayer
            ennef Christopher Fenner
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: