Jenkins archiveArtifacts配置:如何从指定虚拟机检索文件?
配置Jenkins流水线的archiveArtifacts访问虚拟机目录
首先明确:archiveArtifacts 步骤默认从当前执行该步骤的Jenkins Agent工作空间归档文件。你的任务通过agent.jar在固定虚拟机运行,该虚拟机本身就是Jenkins的一个Agent节点,VM-workspace就是它的工作空间目录。
核心配置步骤
指定目标虚拟机Agent执行归档
若整个流水线都在该虚拟机Agent上运行,直接添加archiveArtifacts步骤即可;若仅部分步骤在该Agent上,需用agent或node块指定Agent的标签/名称:pipeline { agent { label 'your-vm-agent-tag' // 替换为虚拟机Agent的标签或名称 } stages { stage('归档工件') { steps { // 归档VM-workspace下的指定文件,路径为Agent工作空间的相对路径 archiveArtifacts artifacts: '**/*.jar, logs/**/*', fingerprint: true } } } }比如要归档
VM-workspace/build/output.jar,直接写build/output.jar或**/output.jar即可。处理非默认工作空间的情况
如果VM-workspace不是Agent的默认工作空间,可以通过dir块切换到该目录后再归档:steps { dir('/absolute/path/to/VM-workspace') { // 替换为虚拟机上VM-workspace的绝对路径 archiveArtifacts artifacts: '**/*.zip', allowEmptyArchive: false } }验证文件路径
可先添加命令行步骤确认文件存在:steps { sh 'ls -la /absolute/path/to/VM-workspace' // Linux虚拟机 // bat 'dir C:\\absolute\\path\\to\\VM-workspace' // Windows虚拟机 archiveArtifacts artifacts: '**/*.txt' }
注意事项
- 确保Jenkins Agent进程(agent.jar)拥有
VM-workspace目录的读取权限,否则无法归档文件。 allowEmptyArchive: true可在无匹配文件时避免流水线失败,根据需求调整。- 若文件已同步到Jenkins主节点,也可直接在主节点工作空间归档,但需确认文件已传输到位。
内容的提问来源于stack exchange,提问作者user3711142
相关产品推荐
相关产品推荐

