#!/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> **构建状态**: 失败\\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 "通知发送完成!"