52 lines
1.5 KiB
Bash
Executable File
52 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 测试企业微信通知脚本(使用 printf)
|
|
|
|
WEBHOOK_URL="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=bb7efcdc-c32f-47b7-a437-d76cab9fba74"
|
|
|
|
# 模拟 CI 环境变量
|
|
STATUS="failure"
|
|
BRANCH="release/v1.0.0"
|
|
COMMIT="testprintf"
|
|
MESSAGE="fix: 使用printf构建JSON避免变量展开问题
|
|
|
|
- 使用 printf 来构建 JSON
|
|
- 避免单引号和双引号组合的问题
|
|
- 确保变量正确展开"
|
|
AUTHOR="zhangxiang"
|
|
PIPELINE_NUMBER="17"
|
|
REPO_ID="1"
|
|
PIPELINE_URL="https://ci.f.novalon.cn/repos/${REPO_ID}/pipeline/${PIPELINE_NUMBER}"
|
|
|
|
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
|
|
|
|
# 简化处理:移除换行符和引号
|
|
MESSAGE_CLEAN=$(echo "$MESSAGE" | tr '\n' ' ' | tr '"' "'")
|
|
|
|
echo "发送企业微信通知..."
|
|
echo "状态: $STATUS"
|
|
echo "分支: $BRANCH"
|
|
echo "提交: $COMMIT"
|
|
echo "作者: $AUTHOR"
|
|
echo "MESSAGE_CLEAN: $MESSAGE_CLEAN"
|
|
echo ""
|
|
|
|
# 使用 printf 构建 JSON
|
|
JSON_DATA=$(printf '{
|
|
"msgtype": "markdown",
|
|
"markdown": {
|
|
"content": "## 🚀 Novalon Website 部署通知\\n\\n> **构建状态**: <font color=\\"warning\\">失败</font>\\n\\n**项目信息**\\n> 分支: `%s`\\n> 提交: `%s`\\n> 作者: %s\\n\\n**提交信息**\\n> %s\\n\\n**操作**\\n> [查看构建详情](%s)\\n\\n---\\n> 时间: %s\\n> Pipeline #%s"
|
|
}
|
|
}' "$BRANCH" "$COMMIT" "$AUTHOR" "$MESSAGE_CLEAN" "$PIPELINE_URL" "$TIMESTAMP" "$PIPELINE_NUMBER")
|
|
|
|
echo "JSON_DATA:"
|
|
echo "$JSON_DATA"
|
|
echo ""
|
|
|
|
curl -X POST "$WEBHOOK_URL" \
|
|
-H 'Content-Type: application/json' \
|
|
-d "$JSON_DATA"
|
|
|
|
echo ""
|
|
echo "通知发送完成!"
|