无法使用Jenkins中的emailext从从属计算机和电子邮件附加文件

无法使用Jenkins中的emailext从从属计算机和电子邮件附加文件,jenkins,jenkins-pipeline,jenkins-plugins,jenkins-groovy,jenkins-cli,Jenkins,Jenkins Pipeline,Jenkins Plugins,Jenkins Groovy,Jenkins Cli,我有一台主机(Unix)和一台从机(Windows)。 我已经创建了一个关于主和触发器请求的多分支管道项目,所有过程都发生在从中。我试图发送从机上生成的HTML报告,但出现异常: ERROR: Error: No workspace found! Sending email to: abhishek.gaur1@pb.com [Pipeline] } [Pipeline] // stage [Pipeline] End of Pipeline Finished: SUCCES

我有一台主机(Unix)和一台从机(Windows)。 我已经创建了一个关于主和触发器请求的多分支管道项目,所有过程都发生在从中。我试图发送从机上生成的HTML报告,但出现异常:

ERROR: Error: No workspace found!  
Sending email to: abhishek.gaur1@pb.com  
[Pipeline] }  
[Pipeline] // stage  
[Pipeline] End of Pipeline  
Finished: SUCCESS  
我在Jenkins文件中使用以下代码:

success {
    emailext attachmentsPattern: '**/overview-features.html',
    body: '${SCRIPT, template="groovy-html.template"}',
    mimeType: 'text/html',
    subject: 'Success Pipeline: ${currentBuild.fullDisplayName}',
    to: 'abhishek.gaur1@pb.com'
    }
该文件应附加到电子邮件并发送。当前显示错误:

错误:找不到工作区


从我的测试来看,
agent none
案例在主服务器上没有分配工作空间的配置中似乎存在问题

agent none
允许设置每个阶段的代理,但是
post()
块不允许设置代理,它将在没有工作区的主机上运行,如果
agent none
是我收集的

因此,在这种情况下,声明性管道的唯一解决方案是使用标签Developer30运行整个构建代理,如果您的示例已经完成,那么应该没有问题

pipeline { 

    agent { 
        label 'Developer30' 
    }

    tools { 
        maven 'MAVEN_HOME' 
    } 

    stages { 
        stage ('Compile Stage') {              
            steps { 
                bat 'mvn clean' 
            } 
        } 
    }

    post { 
        success { 
            // emailext stuff
        }
    }
}

你能确定你是在
node(){[…]}
块中执行这个被剪断的命令吗?在节点块外部没有工作空间,因此如果包含文件,则工作空间必须位于内部。编辑:似乎您正在使用声明性管道语法,您可以添加脚本的整个结构吗?管道{agent none tools{maven'maven_HOME'}阶段{stage('Compile stage'){agent{label'Developer30'}步骤{bat'mvn clean'}#Developer30是从属节点的名称,尽管它正在挑选HTML文件并填充主节点中的结果,但最好下次在您的原始帖子中编辑它。我将发布一些关于您问题的答案。