如何在Jenkins测试运行后将构建工作区内容作为邮件附件发送
问题解决:Jenkins邮件无法附加工作区文件
你的问题出在attachmentsPattern的路径写法错误,导致无法匹配到工作区中的zip文件。
错误原因
${WORKSPACE}是Jenkins提供的工作区绝对路径,而emailext的attachmentsPattern参数默认是相对于当前工作区的路径匹配模式。你写的**/${WORKSPACE}/*.zip相当于在工作区目录下,再去寻找名为${WORKSPACE}的子目录里的zip文件,这显然和实际文件位置不符,自然匹配不到任何文件。
修复方案
根据你的需求,调整attachmentsPattern的写法:
- 如果要附加工作区内所有zip文件,直接使用:
attachmentsPattern: "**/*.zip" - 如果只需要附加工作区内某个特定目录(比如
test-reports)下的zip文件,使用:attachmentsPattern: "test-reports/**/*.zip"
额外验证步骤(可选)
如果还是无法匹配,可以先在流水线中添加步骤,确认文件位置和权限:
stage('Verify Files') { steps { sh "ls -la ${WORKSPACE}" // 查看工作区文件列表 sh "find ${WORKSPACE} -name '*.zip'" // 查找所有zip文件的绝对路径 } }
修复后的完整代码片段
stage('Send Test Report') { steps { script { def testEmailGroup = "saba@abc.com" emailext( subject: "STARTED: JOB '${env.JOB_NAME} [${env.BUILD_NUMBER}]' RESULT: ${currentBuild.currentResult}", attachLog: true, attachmentsPattern: "**/*.zip", // 修正后的路径 compressLog: true, body: "Check console output at ${env.BUILD_URL}", to: testEmailGroup ) } } }
内容的提问来源于stack exchange,提问作者Oasis001
相关产品推荐
相关产品推荐

