我需要在幾個階段之間共享一些代碼,這也需要添加發布操作。要做到這一點,我想到了把一切的方法,該方法將被稱爲從有沒有辦法在聲明式管道中以編程方式注入發佈操作
pipeline {
stages {
stage('Some') {
steps {
script { commonCode() }
}
}
}
}
但是,我不知道我怎麼會從commonCode
安裝後的行動。文檔沒有提到一件事。查看代碼,意味着這個DSL基本上只是在使用哈希映射,但我不知道是否有可能從該方法訪問它並在運行中進行修改。
基本上我願做這樣的事情在commonCode
:
if (something) {
attachPostAction('always', { ... })
} else {
attachPostAction('failure', { ... })
}
,到目前爲止工作的唯一的事情是,在commonCode
我做的:
try {
...
onSuccess()
} catch (e) {
onError()
} finally {
onAlways()
}
,但不知道是否有更優雅的方式...
我想我可能不清楚我的問題。我知道我可以在'steps'和'post'中使用步驟和其他方法(假設我在'script'中包裝了一些方法)。我的問題是:我可以在「steps」中做些什麼,它會以編程方式附加新的「post」動作。 –
啊......這不是我所理解的。很抱歉對於這個誤會。我想知道是否可以使用散列或列表來存儲您想要在後期運行的某些閉包,然後在到達時運行這些閉包。我會看看我以後能否搞砸。 –