【发布时间】:2016-06-08 10:48:32
【问题描述】:
我正在尝试在构建后操作中发送一封电子邮件,内容设置为我在构建操作中计算的一些结果。我似乎无法将 shell 代码中的变量传递给任何构建后的操作。
我尝试过使用 EnvInject,但没有成功。
我错过了什么?
【问题讨论】:
标签: jenkins
我正在尝试在构建后操作中发送一封电子邮件,内容设置为我在构建操作中计算的一些结果。我似乎无法将 shell 代码中的变量传递给任何构建后的操作。
我尝试过使用 EnvInject,但没有成功。
我错过了什么?
【问题讨论】:
标签: jenkins
和往常一样,我在发布问题后立即找到了解决方案。
我设法通过在 shell 脚本位中添加类似的东西来解决它:
EMAIL_CONTENT=$(cat <<EOF
Some content here.
Some content there.
EOF
)
EMAIL_RECIPIENTS="someone@example.com"
touch email_properties
echo "EMAIL_CONTENT=${EMAIL_CONTENT}" >> email_properties
echo "EMAIL_RECIPIENTS=${EMAIL_RECIPIENTS}" >> email_properties
然后,在构建后操作中,我使用Trigger parametrized build on other projects 和Parameters from properties file 选项来触发其他一些工作,其唯一目的是通过电子邮件向我发送这些凭据。这有点解决方法,但它有效。
【讨论】:
trigger parameterized build... 触发下游作业。我能够将属性文件中的参数传递给下游作业,但电子邮件触发器无法使用它。我使用 Script - After Build 和触发脚本build.envVars["GO"] == 'Y'。你是怎么让它工作的? stackoverflow.com/questions/45470021/…
email_properties 文件。但我很抱歉,这是很久以前的事了。 :(
Trigger parametrized build on other projects 在 Jenkins 版本 2.190 中似乎不再存在
Trigger parameterized build on other projects 作为构建后操作,那么您可能需要安装此插件 wiki.jenkinsci.org/display/JENKINS/Parameterized+Trigger+Plugin 对于此示例,您使用 email_properties 作为属性文件名。然后在您正在调用的参数化 Jenkins 构建或项目中,通过选择 This project is parameterized 并填写名称,确保将属性文件的键定义为字符串参数。在这种情况下,String parameters 的名称是 EMAIL_CONTENT 和 EMAIL_RECIPIENTS