Declarative Pipeline
agent
-
post
In the top-level pipeline block and each stage block.
-
post-condition
Conditions
always, changed, fixed, regression, aborted, failure, success, unstable, unsuccessful, and cleanup
-
-
Supported Credentials Type
Secret Text
Secret File
Username and password
SSH with Private Key
-
when
Inside a stage directive
-
Built-in Conditions
-
branch
ANT style path glob match
buildingTag
changelog
changeset
changeRequest
environment
equals
expression
tag
not
allOf
anyOf
-
triggeredBy
-
Execute the stage when the current build has been triggered by the param given
when { triggeredBy 'SCMTrigger' }
when { triggeredBy 'TimerTrigger' }
when { triggeredBy 'BuildUpstreamCause' }
when { triggeredBy cause: "UserIdCause", detail: "vlinde" }
-
-
-
matrix
- the matrix section must include an axes section and a stages section.
-
axes
// One-axis with 3 cells matrix { axes { axis { name 'PLATFORM' values 'linux', 'mac', 'windows' } } // ... } // Two-axis with 12 cells (three by four) matrix { axes { axis { name 'PLATFORM' values 'linux', 'mac', 'windows' } axis { name 'BROWSER' values 'chrome', 'edge', 'firefox', 'safari' } } // ... } // Three-axis matrix with 24 cells (three by four by two) matrix { axes { axis { name 'PLATFORM' values 'linux', 'mac', 'windows' } axis { name 'BROWSER' values 'chrome', 'edge', 'firefox', 'safari' } axis { name 'ARCHITECTURE' values '32-bit', '64-bit' } } // ... }
-
stages
-
One-axis with 3 cells, each cell runs three stages - “build”, “test”, and “deploy”
matrix { axes { axis { name 'PLATFORM' values 'linux', 'mac', 'windows' } } stages { stage('build') { // ... } stage('test') { // ... } stage('deploy') { // ... } } }
-
Two-axis with 12 cells (three by four)
matrix { axes { axis { name 'PLATFORM' values 'linux', 'mac', 'windows' } axis { name 'BROWSER' values 'chrome', 'edge', 'firefox', 'safari' } } stages { stage('build-and-test') { // ... } } }
excludes (optional)
-
Three-axis matrix with 24 cells, exclude ‘32-bit, mac’ (4 cells excluded)
matrix { axes { axis { name 'PLATFORM' values 'linux', 'mac', 'windows' } axis { name 'BROWSER' values 'chrome', 'edge', 'firefox', 'safari' } axis { name 'ARCHITECTURE' values '32-bit', '64-bit' } } excludes { exclude { axis { name 'PLATFORM' values 'mac' } axis { name 'ARCHITECTURE' values '32-bit' } } } // ... }
-
One-axis with 3 cells, each cell runs three stages - “build”, “test”, and “deploy”
-
Matrix cell-level directives (optional)
agent,environment,input,opitons,post,tools,when
Jenkins core
archiveArtifacts
$class
Command chains for groovy DSL
pipeline
本质是一个多层嵌套的闭包,文章来源地址https://www.toymoban.com/news/detail-532839.html
-
using a command chain based DSL
// equivalent to: turn(left).then(right) turn left then right // equivalent to: take(2.pills).of(chloroquinine).after(6.hours) take 2.pills of chloroquinine after 6.hours // equivalent to: paint(wall).with(red, green).and(yellow) paint wall with red, green and yellow // with named parameters too // equivalent to: check(that: margarita).tastes(good) check that: margarita tastes good // with closures as parameters // equivalent to: given({}).when({}).then({}) given { } when { } then { } // equivalent to: select(all).unique().from(names) select all unique() from names // equivalent to: take(3).cookies // and also this: take(3).getCookies() take 3 cookies
-
illustrate creating such a DSL
show = { println it } square_root = { Math.sqrt(it) } def please(action) { [the: { what -> [of: { n -> action(what(n)) }] }] } // equivalent to: please(show).the(square_root).of(100) please show the square_root of 100 // ==> 10.0
-
it
是 groovy 闭包中特殊参数
文章来源:https://www.toymoban.com/news/detail-532839.html
到了这里,关于Jenkins pipeline vs Groovy DSL的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!