Thanks very much Liam,

I will immediately try and demo this in my organization for multiple 
multi-platform (pun intended) use cases!

This is why I love jenkins plugins API ecosystem, it is by far the deepest 
and most feature rich in the CI landscape and promotes immense code reuse.

Sincerely
Firmsoil

On Tuesday, August 6, 2019 at 1:12:32 PM UTC-7, Liam Newman wrote:
>
> Hello all!
>
> I'm pleased to announce the release of Declarative Pipeline 1.4.0-beta-1 
> with Matrix Stages. This feature allows pipeline authors to specify a 
> matrix of one or more dimensions and run a set of stages on the combination 
> of values specified. 
>
> One simple use case where Matrix Stages are valuable is running browser 
> tests on several operating systems and browser combinations.  Let’s say we 
> want to run tests on Linux, OS X, and Windows for browsers Chrome, Firefox, 
> IE, and Safari. We’ll want to run tests for IE on Windows only and we’ll 
> want tests for Safari to run on OS X and Windows.  Here’s what that 
> scenario will look like using the new “matrix” directive:
>
> Jenkinsfile
>
> ----------
>
> pipeline {
>
>     agent none
>
>     stages {
>
>         stage("foo") {
>
>             matrix {
>
>                 axes {
>
>                     axis {
>
>                         name 'os'
>
>                         values "linux", "windows", "mac"
>
>                     }
>
>                     axis {
>
>                         name 'browser'
>
>                         values "firefox", "chrome", "safari", "ie"
>
>                     }
>
>                 }
>
>                 excludes {
>
>                     exclude {
>
>                         axis {
>
>                             name 'os'
>
>                             values 'linux'
>
>                         }
>
>                         axis {
>
>                             name 'browser'
>
>                             values 'safari'
>
>                         }
>
>                     }
>
>                     exclude {
>
>                         axis {
>
>                             name 'os'
>
>                             notValues 'windows'
>
>                         }
>
>                         axis {
>
>                             name 'browser'
>
>                             values 'ie'
>
>                         }
>
>                     }
>
>                 }
>
>                 stages {
>
>                     stage("first") {
>
>                         steps {
>
>                             echo "Running on OS=$os, BROWSER=$browser"
>
>                         }
>
>                     }
>
>                     stage("second") {
>
>                         steps {
>
>                             // ... Second stage steps ... 
>
>                         }
>
>                     }
>
>                 }
>
>             }
>
>         }
>
>     }
>
> }
>
> ----------
>
> In the example, we specify two axes and the values for each of them. Then, 
> we use the optional “excludes” directive to remove undesired combinations 
> from the matrix. Finally, we specify one or more stages that we want to run 
> on each combination.   
>
> Log fragment:
>
> …
>
> [Pipeline] stage
>
> [Pipeline] { (foo)
>
> [Pipeline] parallel
>
> [Pipeline] { (Branch: Matrix: os = 'linux', browser = 'firefox')
>
> [Pipeline] { (Branch: Matrix: os = 'windows', browser = 'firefox')
>
> [Pipeline] { (Branch: Matrix: os = 'mac', browser = 'firefox')
>
> [Pipeline] { (Branch: Matrix: os = 'linux', browser = 'chrome')
>
> [Pipeline] { (Branch: Matrix: os = 'windows', browser = 'chrome')
>
> [Pipeline] { (Branch: Matrix: os = 'mac', browser = 'chrome')
>
> [Pipeline] { (Branch: Matrix: os = 'windows', browser = 'safari')
>
> [Pipeline] { (Branch: Matrix: os = 'mac', browser = 'safari')
>
> [Pipeline] { (Branch: Matrix: os = 'windows', browser = 'ie')
>
> ...
>
>
>
> Declarative Pipeline 1.4.0-beta-1 is available from the experimental 
> update center now (
> https://jenkins.io/doc/developer/publishing/releasing-experimental-updates/). 
> I look forward to hearing what you think of this feature and what you’d 
> like to see in future updates to Declarative Pipeline. 
>
> Thanks,
>
> Liam Newman 
>
> Senior Software Engineer - Pipeline 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/f3bf8ebf-82f5-4b5c-9178-4c664748f309%40googlegroups.com.

Reply via email to