我们有一份工作,在构建期间会在工作区文件夹中生成一些html文件。 我们的目标是在构建完成后获取这些文件并将其压缩。
这项工作的第一步是清理工作区-确保没有以前构建的文件。
当我们开始构建并有人开始单独构建时,我们的问题就出现了-工作区被擦除了。这两个版本都在生成这些html,并且内容来自不同版本。
如果某人有想法如何将每个版本分开以拥有自己的工作区,将非常高兴与大家分享。我希望仅将其应用于一项工作。其他作业必须保留在共享工作区中。
答案 0 :(得分:0)
如果您有管道作业,则可以在终止作业之前添加后操作:
类似于
if (currentBuild.result == "SUCCESS") {
sh '''
tar czf myArchive.tgz *.html
scp myArchive.tgz xxx@xxxx:
'''
} else {
step ([$class: 'Mailer', recipients: 'xxx@xxx.com'])
}
cleanWs cleanWhenFailure: false
如果您真的想操纵工作区,我将做一些研究。也许您可以通过重新声明env.WORKSPACE变量的路径来做一些事情,但这对我来说似乎并不好。
答案 1 :(得分:0)
在作业配置下,选中“使用自定义工作区”,然后传递您要在其中创建此工作区的位置。我通常通过传递$ BUILD_NUMBER变量来创建工作空间目录。
答案 2 :(得分:0)
pipeline {
agent {
node {
label 'master'
customWorkspace "${JENKINS_HOME}/workspace/${JOB_NAME}/${BUILD_NUMBER}"
}
}
}
post {
cleanup {
deleteDir()
dir("${workspace}@tmp") {
deleteDir()
}
dir("${workspace}@script") {
deleteDir()
}
}
}
谢谢你们