49 lines
1.5 KiB
Bash
Executable File
49 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# 测试企业微信通知脚本(使用 jq)
|
||
|
||
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="testjq"
|
||
MESSAGE="fix: 使用jq构建JSON避免YAML多行字符串问题
|
||
|
||
- 使用 jq 来构建 JSON
|
||
- 避免 YAML 多行字符串处理问题
|
||
- 确保变量正确展开"
|
||
AUTHOR="zhangxiang"
|
||
PIPELINE_NUMBER="18"
|
||
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 ""
|
||
|
||
# 使用 jq 构建 JSON
|
||
CONTENT="## 🚀 Novalon Website 部署通知\n\n> **构建状态**: <font color=\"warning\">失败</font>\n\n**项目信息**\n> 分支: \`${BRANCH}\`\n> 提交: \`${COMMIT}\`\n> 作者: ${AUTHOR}\n\n**提交信息**\n> ${MESSAGE_CLEAN}\n\n**操作**\n> [查看构建详情](${PIPELINE_URL})\n\n---\n> 时间: ${TIMESTAMP}\n> Pipeline #${PIPELINE_NUMBER}"
|
||
|
||
JSON_DATA=$(echo "{}" | jq --arg content "$CONTENT" '.msgtype = "markdown" | .markdown.content = $content')
|
||
|
||
echo "JSON_DATA:"
|
||
echo "$JSON_DATA"
|
||
echo ""
|
||
|
||
curl -X POST "$WEBHOOK_URL" \
|
||
-H 'Content-Type: application/json' \
|
||
-d "$JSON_DATA"
|
||
|
||
echo ""
|
||
echo "通知发送完成!"
|