在每个阶段之后,我需要运行带有脚本的“ always”块。所以,我所做的如下所示。我的问题是,无论如何,我是否可以只阻塞一次“ always”,然后在每个阶段之后调用,而不是在每个阶段之后都提供整个“ always script”?
pipeline {
agent { label '!master' }
stages {
stage("Checkout Test") {
steps {
'Do somthing'
}
}
stage('Test1') {
steps {
dir('test') {
'Do something'
}
}
}
post {
*always {
script {
dir('test') {
Uploader(
'Do something'
)
}
}
}*
}
stage('Test2') {
steps {
dir('test') {
'Do something'
}
}
}
post {
*always {
script {
dir('test') {
Uploader(
'Do something'
)
}
}
}*
}
}
}
答案 0 :(得分:0)
如果要作为发布脚本运行,则必须在每个阶段之后添加发布块。但是在此期间,您始终可以调用方法,从而节省一些代码重复。
另一个选择是直接在阶段的最后一步调用后脚本方法(runPostScript()),而不是添加后脚本。但是需要注意的是,它可能不会一直执行。如果阶段中的某些操作失败,则该方法将不会执行。
pipeline {
agent { label '!master' }
stages {
stage("Checkout Test") {
steps {
'Do somthing'
}
}
stage('Test1') {
steps {
dir('test') {
'Do something'
}
}
}
post {
*always {
script {
runPostScript()
}
}*
}
stage('Test2') {
steps {
dir('test') {
'Do something'
}
}
}
post {
*always {
script {
runPostScript()
}
}*
}
}
}
def runPostScript(){
'do something'
}