无论如何在email-ext模板中访问管道全局变量

时间:2018-06-15 02:14:51

标签: jenkins continuous-integration

由于可以在email-ext模板中访问构建ENV,所以无论如何都要访问email-ext模板中的管道全局变量。

我们有父管道触发10个子管道作业并行,我们需要自己格式化每个子作业的构建状态。目前,我们将所有数据格式化为我们在父管道中的一个全局地图,希望在email-ext模板中使用该全局地图来格式化电子邮件输出。

一种方法是格式化文件中的所有数据,然后在电子邮件模板处理之前使用脚本格式化文件,但这有点复杂。

所以我们想知道这样的req是否有任何其他好的选择,但没有得到任何关于谷歌的提示。

添加我们自己的构建ENV不是选项,因为我们需要格式化父pipleline中的数据。

感谢任何提示。

1 个答案:

答案 0 :(得分:0)

如果您在创建地图的主渠道中调用电子邮件文本,那么为什么不直接在电子邮件的主题部分传递地图详细信息,如下所示:

   emailext (
        subject: "STARTED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",
        body: """<p>STARTED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>
            <p>Build Status of job1:;'${MyMap.get(JOB1)}' </p> <br/>
            <p>Build Status of job2:;'${MyMap.get(JOB2)}' </p> <br/>
            .......
             """,
        recipientProviders: [[$class: 'DevelopersRecipientProvider']]
    )

也直接尝试MyMap.JOB1, 您可能需要进行一些试验和错误才能使其正常工作。但正如您在示例中所看到的,env.JOB_NAME实际上是一个包含键和值数据的Map。

希望有所帮助:)