From ece59cb0b9a881e26048bd459e223e1c29ba5830 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=BF=94?= Date: Sat, 28 Mar 2026 21:36:45 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BD=BF=E7=94=A8jq=E6=9E=84=E5=BB=BAJS?= =?UTF-8?q?ON=E9=81=BF=E5=85=8DYAML=E5=A4=9A=E8=A1=8C=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E4=B8=B2=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 使用 jq 来构建 JSON - 避免 YAML 多行字符串处理问题 - 确保变量正确展开 - 本地测试成功 --- .woodpecker.yml | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index 3e3debc..ac69e09 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -414,11 +414,12 @@ steps: # 阶段7: 企业微信通知 # ============================================ notify-wechat-success: - image: curlimages/curl:latest + image: alpine:latest environment: WECHAT_WEBHOOK: from_secret: wechat_webhook commands: + - apk add --no-cache curl jq - | BRANCH="${CI_COMMIT_BRANCH:-unknown}" COMMIT="${CI_COMMIT_SHA:0:7:-unknown}" @@ -432,12 +433,9 @@ steps: MESSAGE_CLEAN=$(echo "$MESSAGE" | tr '\n' ' ' | tr '"' "'") - 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") + CONTENT="## 🚀 Novalon Website 部署通知\n\n> **构建状态**: 成功\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') curl -X POST "$WECHAT_WEBHOOK" \ -H 'Content-Type: application/json' \ @@ -452,11 +450,12 @@ steps: - success notify-wechat-failure: - image: curlimages/curl:latest + image: alpine:latest environment: WECHAT_WEBHOOK: from_secret: wechat_webhook commands: + - apk add --no-cache curl jq - | BRANCH="${CI_COMMIT_BRANCH:-unknown}" COMMIT="${CI_COMMIT_SHA:0:7:-unknown}" @@ -470,12 +469,9 @@ steps: MESSAGE_CLEAN=$(echo "$MESSAGE" | tr '\n' ' ' | tr '"' "'") - 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") + CONTENT="## 🚀 Novalon Website 部署通知\n\n> **构建状态**: 失败\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') curl -X POST "$WECHAT_WEBHOOK" \ -H 'Content-Type: application/json' \