fix: 彻底修复 YAML 语法错误

- 避免使用 heredoc,改用字符串拼接方式构建消息
- 使用 $'\n' 来处理换行符
- 将 jq 输出直接通过管道传给 curl
- 确保 YAML 语法正确无误
This commit is contained in:
shaw
2025-07-20 00:52:49 +08:00
parent c6fb87b726
commit 0aa986a0d8

View File

@@ -149,45 +149,35 @@ jobs:
TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }}
continue-on-error: true
run: |
# 准备 Telegram 消息内容
VERSION="${{ steps.next_version.outputs.new_version }}"
TAG="${{ steps.next_version.outputs.new_tag }}"
REPO="${{ github.repository }}"
# 获取更新内容限制长度
# 获取更新内容限制长度
CHANGELOG="${{ steps.changelog.outputs.content }}"
# 截取前 1000 个字符避免消息过长
CHANGELOG_TRUNCATED=$(echo "$CHANGELOG" | head -c 1000)
if [ ${#CHANGELOG} -gt 1000 ]; then
CHANGELOG_TRUNCATED="${CHANGELOG_TRUNCATED}..."
fi
# 构建消息,使用 JSON 格式避免转义问题
MESSAGE=$(cat <<-ENDMSG
🚀 *Claude Relay Service 新版本发布!*
📦 版本号: \`${VERSION}\`
📝 *更新内容:*
${CHANGELOG_TRUNCATED}
🐳 *Docker 部署:*
\`\`\`bash
docker pull weishaw/claude-relay-service:${TAG}
docker pull weishaw/claude-relay-service:latest
\`\`\`
🔗 *相关链接:*
• [GitHub Release](https://github.com/${REPO}/releases/tag/${TAG})
• [完整更新日志](https://github.com/${REPO}/blob/main/CHANGELOG.md)
• [Docker Hub](https://hub.docker.com/r/weishaw/claude-relay-service)
#ClaudeRelay #Update #v${VERSION//./_}
ENDMSG
)
# 构建消息内容
MESSAGE="🚀 *Claude Relay Service 新版本发布!*"$'\n'$'\n'
MESSAGE+="📦 版本号: \`${VERSION}\`"$'\n'$'\n'
MESSAGE+="📝 *更新内容:*"$'\n'
MESSAGE+="${CHANGELOG_TRUNCATED}"$'\n'$'\n'
MESSAGE+="🐳 *Docker 部署:*"$'\n'
MESSAGE+="\`\`\`bash"$'\n'
MESSAGE+="docker pull weishaw/claude-relay-service:${TAG}"$'\n'
MESSAGE+="docker pull weishaw/claude-relay-service:latest"$'\n'
MESSAGE+="\`\`\`"$'\n'$'\n'
MESSAGE+="🔗 *相关链接:*"$'\n'
MESSAGE+="• [GitHub Release](https://github.com/${REPO}/releases/tag/${TAG})"$'\n'
MESSAGE+="• [完整更新日志](https://github.com/${REPO}/blob/main/CHANGELOG.md)"$'\n'
MESSAGE+="• [Docker Hub](https://hub.docker.com/r/weishaw/claude-relay-service)"$'\n'$'\n'
MESSAGE+="#ClaudeRelay #Update #v${VERSION//./_}"
# 准备 JSON 数据
JSON_DATA=$(jq -n \
# 使用 jq 构建 JSON 并发送
jq -n \
--arg chat_id "${TELEGRAM_CHAT_ID}" \
--arg text "${MESSAGE}" \
'{
@@ -195,9 +185,7 @@ ENDMSG
text: $text,
parse_mode: "Markdown",
disable_web_page_preview: false
}')
# 发送消息到 Telegram
}' | \
curl -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
-H "Content-Type: application/json" \
-d "${JSON_DATA}"
-d @-