Files
novalon-website/scripts/test-cat-heredoc.sh
T
张翔 d19c290365
ci/woodpecker/push/woodpecker Pipeline failed
fix: 使用 cat heredoc 方法修复企业微信通知环境变量展开
- 使用 cat > file <<EOF 替代其他方法
- 确保环境变量在 heredoc 中正确展开
- 本地测试验证成功
2026-03-29 08:03:19 +08:00

45 lines
1.5 KiB
Bash
Executable File

#!/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' ' ')
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")
# 使用 cat 和 heredoc,但确保变量展开
cat > /tmp/payload.json <<EOF
{
"msgtype": "markdown",
"markdown": {
"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}"
}
}
EOF
echo "=========================================="
echo "测试 cat heredoc 方法"
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 "✅ 测试完成!变量已正确展开"