package Ġcom . code 4 2 . jenkins . pipeline kt . dsl . stage Ċ Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . core . Pipeline Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . core . Post Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . core . method . Pipeline Method Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . core . method . Pipeline Method Invocation Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . core . stage . Exclude Axis Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . core . stage . Matrix Axis Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . core . stage . Matrix Body Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . core . stage . Matrix Exclude Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . core . stage . Stage Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . core . vars . Var Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . core . vars . ext . parameter Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . core . vars . ext . str Double Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . dsl . Pipeline Dsl Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . dsl .` when `. expression Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . dsl . agent . label Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . dsl . option . skip Default Checkout Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . dsl . option . timeout Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . dsl . step . conditional . statement Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . dsl . step . decl arative . sh Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . dsl . tool . jdk Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . internal .` when `. Expression Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . internal . agent . Label Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . internal . option . Skip Default Checkout Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . internal . option . Timeout Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . internal . step . decl arative . Clean Ws Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . internal . step . decl arative . Sh Ċ import Ġcom . code 4 2 . jenkins . pipeline kt . internal . tools . JDK Ċ import Ġjava . util . concurrent . TimeUnit Ċ import Ġkotlin . test . assertEquals Ċ import Ġorg . junit . Test Ċ Ċ class ĠMatrix Stage Dsl Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmatrix Stage _ object E quivalence () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpipeline Dsl Ġ= ĠPipeline Dsl ( default Build Options Ġ= Ġ{ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġval Ġpipeline Ġ= Ġpipeline Dsl . pipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstages Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage (" matrix ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ` when ` Ġ{ Ġexpression Ġ{ Ġ" hello ". parameter (). statement () Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Ġ{ Ġskip Default Checkout () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatrix Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġagent Ġ{ Ġlabel (" linux ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ` when ` Ġ{ Ġexpression Ġ{ Ġ" hello _ inside ". parameter (). statement () Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Ġ{ Ġtimeout ( 1 , ĠTimeUnit . HOUR S ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtools Ġ{ Ġj dk (" 1 1 ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaxes Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaxis (" OS ", ĠlistOf (" mac ", Ġ" windows ", Ġ" linux ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaxis (" BROWSER ", ĠlistOf (" ie ", Ġ" s afari ", Ġ" chrome ", Ġ" firefox ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexclude s Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexclude Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaxis (" OS ", Ġ" linux ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnot Axis (" BROWSER ", ĠlistOf (" chrome ", Ġ" firefox ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstages Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage (" nested Ġstage ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsteps Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsh ("./ call . sh ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalways Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsh ("./ matrix - always . sh ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalways Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsh ("./ stage - always . sh ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPipeline ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstages Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStage . Matrix ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" matrix ". str Double (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Block Ġ= ĠlistOf ( Expression (" hello ". parameter (). statement ())), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Ġ= ĠlistOf ( Skip Default Checkout ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatrix Body Ġ= ĠMatrix Body ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġagent Ġ= ĠLabel (" linux ". str Double ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Block Ġ= ĠlistOf ( Expression (" hello _ inside ". parameter (). statement ())), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Ġ= ĠlistOf ( Timeout ( Var . Literal . Int ( 1 ), ĠTimeUnit . HOUR S )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtools Ġ= ĠlistOf ( JDK (" 1 1 ". str Double ())), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaxes Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMatrix Axis ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" OS ". str Double (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" mac ", Ġ" windows ", Ġ" linux "). map Ġ{ Ġit . str Double () Ġ}), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMatrix Axis ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" BROWSER ". str Double (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" ie ", Ġ" s afari ", Ġ" chrome ", Ġ" firefox "). map Ġ{ Ġit . str Double () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexclude s Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMatrix Exclude ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExclude Axis . Values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" OS ". str Double (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" linux ". str Double ())), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExclude Axis . Not Values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" BROWSER ". str Double (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" chrome ", Ġ" firefox "). map Ġ{ Ġit . str Double () Ġ} )))), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstages Ġ= ĠlistOf ( Stage . Steps ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" nested Ġstage ". str Double (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsteps Ġ= ĠPipeline Method Invocation (" nested _ stage ")) ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost Ġ= ĠPost ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalways Ġ= ĠSh ("./ matrix - always . sh ". str Double ())) ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost Ġ= ĠPost ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalways Ġ= ĠSh ("./ stage - always . sh ". str Double ()))) ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethods Ġ= ĠlistOf ( Pipeline Method (" nested _ stage ", ĠSh ("./ call . sh ". str Double ())) ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost Ġ= ĠPost ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcleanup Ġ= ĠClean Ws ( delete Dirs Ġ= Ġfalse , Ġdisable Deferred W ipe out Ġ= Ġfalse ))) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( expected , Ġpipeline ) ĊĠĠĠ Ġ} Ċ } Ċ