- 使用 jq 来构建 JSON - 避免 YAML 多行字符串处理问题 - 确保变量正确展开 - 本地测试成功
This commit is contained in:
+10
-14
@@ -414,11 +414,12 @@ steps:
|
|||||||
# 阶段7: 企业微信通知
|
# 阶段7: 企业微信通知
|
||||||
# ============================================
|
# ============================================
|
||||||
notify-wechat-success:
|
notify-wechat-success:
|
||||||
image: curlimages/curl:latest
|
image: alpine:latest
|
||||||
environment:
|
environment:
|
||||||
WECHAT_WEBHOOK:
|
WECHAT_WEBHOOK:
|
||||||
from_secret: wechat_webhook
|
from_secret: wechat_webhook
|
||||||
commands:
|
commands:
|
||||||
|
- apk add --no-cache curl jq
|
||||||
- |
|
- |
|
||||||
BRANCH="${CI_COMMIT_BRANCH:-unknown}"
|
BRANCH="${CI_COMMIT_BRANCH:-unknown}"
|
||||||
COMMIT="${CI_COMMIT_SHA:0:7:-unknown}"
|
COMMIT="${CI_COMMIT_SHA:0:7:-unknown}"
|
||||||
@@ -432,12 +433,9 @@ steps:
|
|||||||
|
|
||||||
MESSAGE_CLEAN=$(echo "$MESSAGE" | tr '\n' ' ' | tr '"' "'")
|
MESSAGE_CLEAN=$(echo "$MESSAGE" | tr '\n' ' ' | tr '"' "'")
|
||||||
|
|
||||||
JSON_DATA=$(printf '{
|
CONTENT="## 🚀 Novalon Website 部署通知\n\n> **构建状态**: <font color=\"info\">成功</font>\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}"
|
||||||
"msgtype": "markdown",
|
|
||||||
"markdown": {
|
JSON_DATA=$(echo "{}" | jq --arg content "$CONTENT" '.msgtype = "markdown" | .markdown.content = $content')
|
||||||
"content": "## 🚀 Novalon Website 部署通知\\n\\n> **构建状态**: <font color=\\"info\\">成功</font>\\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")
|
|
||||||
|
|
||||||
curl -X POST "$WECHAT_WEBHOOK" \
|
curl -X POST "$WECHAT_WEBHOOK" \
|
||||||
-H 'Content-Type: application/json' \
|
-H 'Content-Type: application/json' \
|
||||||
@@ -452,11 +450,12 @@ steps:
|
|||||||
- success
|
- success
|
||||||
|
|
||||||
notify-wechat-failure:
|
notify-wechat-failure:
|
||||||
image: curlimages/curl:latest
|
image: alpine:latest
|
||||||
environment:
|
environment:
|
||||||
WECHAT_WEBHOOK:
|
WECHAT_WEBHOOK:
|
||||||
from_secret: wechat_webhook
|
from_secret: wechat_webhook
|
||||||
commands:
|
commands:
|
||||||
|
- apk add --no-cache curl jq
|
||||||
- |
|
- |
|
||||||
BRANCH="${CI_COMMIT_BRANCH:-unknown}"
|
BRANCH="${CI_COMMIT_BRANCH:-unknown}"
|
||||||
COMMIT="${CI_COMMIT_SHA:0:7:-unknown}"
|
COMMIT="${CI_COMMIT_SHA:0:7:-unknown}"
|
||||||
@@ -470,12 +469,9 @@ steps:
|
|||||||
|
|
||||||
MESSAGE_CLEAN=$(echo "$MESSAGE" | tr '\n' ' ' | tr '"' "'")
|
MESSAGE_CLEAN=$(echo "$MESSAGE" | tr '\n' ' ' | tr '"' "'")
|
||||||
|
|
||||||
JSON_DATA=$(printf '{
|
CONTENT="## 🚀 Novalon Website 部署通知\n\n> **构建状态**: <font color=\"warning\">失败</font>\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}"
|
||||||
"msgtype": "markdown",
|
|
||||||
"markdown": {
|
JSON_DATA=$(echo "{}" | jq --arg content "$CONTENT" '.msgtype = "markdown" | .markdown.content = $content')
|
||||||
"content": "## 🚀 Novalon Website 部署通知\\n\\n> **构建状态**: <font color=\\"warning\\">失败</font>\\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")
|
|
||||||
|
|
||||||
curl -X POST "$WECHAT_WEBHOOK" \
|
curl -X POST "$WECHAT_WEBHOOK" \
|
||||||
-H 'Content-Type: application/json' \
|
-H 'Content-Type: application/json' \
|
||||||
|
|||||||
Reference in New Issue
Block a user