email - 从 teamcity 发送自定义电子邮件通知
问题描述
我正在我的 teamcity 服务器中设置电子邮件通知。我有一个 CICD 管道,我想做的是遵循 -
当我的第一个构建配置(构建自动化)成功执行时,我想通知应用程序经理并请求他批准运行第二个构建配置(UAT 部署)。一旦他单击“确定”,其他构建配置(UAT 部署)应该会自动运行。所以我想设置一个带有一些自定义主题和自定义正文的自定义电子邮件通知。
任何帮助将不胜感激。
我已阅读有关电子邮件通知程序和模板的信息,但这并没有帮助。
解决方案
您可能想尝试像Notify17这样的个人通知应用程序。
概念是,虽然这种方法不会生成电子邮件,但它会在您的手机上生成通知,这要容易得多(电子邮件很容易错过,尤其是在开发人员环境中)。
你会做的是:
- 创建一个 Notify17 帐户,它是免费的。
- 下载适用于Android或iOS的应用程序。
- 在仪表板中,创建一个原始 API 密钥。
- 从您的 TeamCity 管道/脚本,向原始 API 密钥端点( API 参考)发送请求。
例如curl
格式:
read -r -d '' BODY <<EOF || true
The configuration(Build automation) has build successfully.
Click here to see the build: $BUILD_URL
EOF
curl -X POST \
"https://hook.notify17.net/api/raw/RAW_API_KEY" \
-F title="configuration(Build automation) complete" \
-F content="$BODY"
您可能希望$BUILD_URL
用实际正确的 URL 替换以指向您的构建。
一旦您对此进行了测试,并且还想将其发送给您的老板,他可以:
- 创建一个 Notify17 帐户。
- 下载适用于Android或iOS的应用程序。
- 在仪表板中,创建一个原始 API 密钥。
- 然后他可以将他的原始 API 密钥发送给您,您可以将此密钥添加到共享组。
- 创建共享组后,导航到原始 API 密钥页面,并将共享组添加到您自己的原始 API 密钥(在
Actions
列中)。这里发生的情况是,每当您使用原始 API 密钥触发新通知时,它也会被转发到指定共享组(例如您的团队)中存在的任何其他原始 API 密钥。
触发构建
从 TeamCity 文档中,可以使用这种请求触发构建:
curl -v -u user:password http://teamcity.server.url:8111/app/rest/buildQueue --request POST --header "Content-Type:application/xml" --data-binary @build.xml
但是,这需要一个 POST 请求,您可能无法通过直接访问 URL 来执行该请求(因此,即使在电子邮件中)。未来 Notify17 将支持动作,但现在可以只生成简单的通知和解析负载。