我们正在使用Jenkins Pipeline。我们的Jenkinsfile脚本使用cifsPublisher来发布/部署到Windows共享。 Jenkins文件中的每个阶段都与一个环境(开发,测试,生产)相关联。我们拥有部署到每个环境所需的批准。
从DEV到TEST进行批准时,应该在TEST阶段获得与部署到DEV完全相同的工件。但是,如果在第一个构建被批准进入TEST之前,第二个构建已在DEV中运行,那么似乎第一个构建将花费几秒钟的构建工件进入TEST。我感觉工件目录在每个构建版本中都不都是唯一的。
这是脚本的简化版本:
pipeline {
agent none
options {
skipDefaultCheckout()
checkoutToSubdirectory('$BUILD_NUMBER')
}
stages {
stage('Build') {
agent any
steps {
checkout scm
}
}
stage('DEV') {
agent any
steps {
cifsPublisher(alwaysPublishFromMaster:false,
publishers:[
[ configName:'DEV',
transfers:[
[ cleanRemote:true,
excludes:'',
flatten:false,
makeEmptyDirs:true,
noDefaultExcludes:false,
patternSeparator:'[, ]+',
remoteDirectory:'',
remoteDirectorySDF:false,
removePrefix:'',
sourceFiles:'**/'
]
],
usePromotionTimestamp:false,
useWorkspaceInPromotion:false,
verbose:false
]
]
)
}
}
stage('TEST') {
agent any
steps {
cifsPublisher(alwaysPublishFromMaster:false,
publishers:[
[ configName:'TEST',
transfers:[
[ cleanRemote:true,
excludes:'',
flatten:false,
makeEmptyDirs:true,
noDefaultExcludes:false,
patternSeparator:'[, ]+',
remoteDirectory:'',
remoteDirectorySDF:false,
removePrefix:'',
sourceFiles:'**/'
]
],
usePromotionTimestamp:false,
useWorkspaceInPromotion:false,
verbose:false
]
]
)
}
}
}
}
}
谢谢你。