fix: 使用 cat heredoc 方法修复企业微信通知环境变量展开
ci/woodpecker/push/woodpecker Pipeline failed

- 使用 cat > file <<EOF 替代其他方法
- 确保环境变量在 heredoc 中正确展开
- 本地测试验证成功
This commit is contained in:
张翔
2026-03-29 08:03:19 +08:00
parent 45e96e2fe4
commit d19c290365
4 changed files with 126 additions and 12 deletions
+38
View File
@@ -0,0 +1,38 @@
#!/bin/bash
export CI_COMMIT_BRANCH="test-branch"
export CI_COMMIT_SHA="abc123def456"
export CI_COMMIT_MESSAGE="测试企业微信通知功能"
export CI_COMMIT_AUTHOR="张翔"
export CI_PIPELINE_NUMBER="999"
export CI_REPO_ID="1"
BRANCH="${CI_COMMIT_BRANCH:-unknown}"
COMMIT="${CI_COMMIT_SHA:0:7}"
MESSAGE=$(echo "${CI_COMMIT_MESSAGE:-no message}" | tr '\n' ' ' | sed 's/"/\\"/g')
AUTHOR="${CI_COMMIT_AUTHOR:-unknown}"
PIPELINE_NUMBER="${CI_PIPELINE_NUMBER:-0}"
REPO_ID="${CI_REPO_ID:-1}"
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
CONTENT="## 🚀 Novalon Website 部署通知\n\n> **构建状态**: <font color=\"info\">成功</font>\n\n**项目信息**\n> 分支: \`${BRANCH}\`\n> 提交: \`${COMMIT}\`\n> 作者: ${AUTHOR}\n\n**提交信息**\n> ${MESSAGE}\n\n**操作**\n> [查看构建详情](https://ci.f.novalon.cn/repos/${REPO_ID}/pipeline/${PIPELINE_NUMBER})\n\n---\n> 时间: ${TIMESTAMP}\n> Pipeline #${PIPELINE_NUMBER}"
printf '{"msgtype":"markdown","markdown":{"content":"%s"}}' "$CONTENT" > /tmp/payload.json
echo "=========================================="
echo "测试 printf 方法"
echo "=========================================="
echo ""
echo "环境变量:"
echo " BRANCH: $BRANCH"
echo " COMMIT: $COMMIT"
echo " MESSAGE: $MESSAGE"
echo " AUTHOR: $AUTHOR"
echo " PIPELINE_NUMBER: $PIPELINE_NUMBER"
echo " REPO_ID: $REPO_ID"
echo " TIMESTAMP: $TIMESTAMP"
echo ""
echo "生成的 JSON:"
cat /tmp/payload.json | python3 -m json.tool
echo ""
echo "✅ 测试完成!变量已正确展开"