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

[Declarative Pipeline] Stage "when" should have logical operator steps (and, or, not, all, any)

    XMLWordPrintable

Details

    Description

      The last change to the stage `when {}` block changed to using items like `branch` and `expression`.

      Multiple items cannot be used in the same when block. This makes sense because it would unclear whether those items should be "A or B", or if they should be "A and B".

      The `when` block should support logical blocks such as `and {}`, `or {}`, `not {}` to allow combining other conditions in a clear fashion.

      For example, when branch is master or parameter "FORCE_FULL_BUILD" is true:

      stage ('Build') {
          when {
              or {
                  branch 'master'
                  expression { return params.FORCE_FULL_BUILD }
              }
          }
      }
      

      Alternative: use `all {}` instead of `and`, and use `any {}` instead of `or {}`:

      stage ('Build') {
          when {
              any {
                  branch 'master'
                  expression { return params.FORCE_FULL_BUILD }
              }
          }
      }
      

      Attachments

        Issue Links

          Activity

            bitwiseman Liam Newman created issue -
            bitwiseman Liam Newman made changes -
            Field Original Value New Value
            Summary [Declarative Pipeline] Stage when should have logical operator steps (and, or, not, all, any) [Declarative Pipeline] Stage "when" should have logical operator steps (and, or, not, all, any)
            bitwiseman Liam Newman made changes -
            Link This issue relates to JENKINS-41187 [ JENKINS-41187 ]
            abayer Andrew Bayer made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            abayer Andrew Bayer made changes -
            Remote Link This issue links to "PR #99 (Web Link)" [ 15316 ]
            abayer Andrew Bayer made changes -
            Remote Link This issue links to "PR #99 (Web Link)" [ 15316 ]
            abayer Andrew Bayer made changes -
            Status In Progress [ 3 ] In Review [ 10005 ]
            abayer Andrew Bayer made changes -
            Remote Link This issue links to "PR #125 (Web Link)" [ 15485 ]
            abayer Andrew Bayer made changes -
            Resolution Fixed [ 1 ]
            Status In Review [ 10005 ] Resolved [ 5 ]
            bitwiseman Liam Newman made changes -
            Status Resolved [ 5 ] Closed [ 6 ]

            People

              abayer Andrew Bayer
              bitwiseman Liam Newman
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: