- 使用 curlimages/curl 镜像,无需安装 curl - 添加 MESSAGE_ESCAPED 变量处理特殊字符 - 设置 HUSKY=0 禁用 CI 环境中的 husky - 本地测试企业微信通知成功
This commit is contained in:
+6
-4
@@ -89,6 +89,7 @@ steps:
|
||||
image: *node_image
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
HUSKY: 0
|
||||
commands:
|
||||
- npm ci --omit=dev
|
||||
- npm audit --audit-level=high --omit=dev
|
||||
@@ -413,13 +414,11 @@ steps:
|
||||
# 阶段7: 企业微信通知
|
||||
# ============================================
|
||||
notify-wechat:
|
||||
image: alpine:latest
|
||||
image: curlimages/curl:latest
|
||||
environment:
|
||||
WECHAT_WEBHOOK:
|
||||
from_secret: wechat_webhook
|
||||
commands:
|
||||
- echo "Sending notification to WeChat Work..."
|
||||
- apk add --no-cache curl
|
||||
- |
|
||||
STATUS="${CI_PIPELINE_STATUS}"
|
||||
BRANCH="${CI_COMMIT_BRANCH}"
|
||||
@@ -439,12 +438,15 @@ steps:
|
||||
|
||||
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
|
||||
|
||||
# 转义特殊字符
|
||||
MESSAGE_ESCAPED=$(echo "$MESSAGE" | sed 's/\\/\\\\/g' | sed 's/"/\\"/g' | tr '\n' '\\n')
|
||||
|
||||
curl -X POST "$WECHAT_WEBHOOK" \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d "{
|
||||
\"msgtype\": \"markdown\",
|
||||
\"markdown\": {
|
||||
\"content\": \"## 🚀 Novalon Website 部署通知\\n\\n> **构建状态**: <font color=\\\"${STATUS_COLOR}\\\">${STATUS_TEXT}</font>\\n\\n**项目信息**\\n> 分支: \`${BRANCH}\`\\n> 提交: \`${COMMIT}\`\\n> 作者: ${AUTHOR}\\n\\n**提交信息**\\n> ${MESSAGE}\\n\\n**操作**\\n> [查看构建详情](${PIPELINE_URL})\\n\\n---\\n> 时间: ${TIMESTAMP}\\n> Pipeline #${PIPELINE_NUMBER}\"
|
||||
\"content\": \"## 🚀 Novalon Website 部署通知\\n\\n> **构建状态**: <font color=\\\"${STATUS_COLOR}\\\">${STATUS_TEXT}</font>\\n\\n**项目信息**\\n> 分支: \`${BRANCH}\`\\n> 提交: \`${COMMIT}\`\\n> 作者: ${AUTHOR}\\n\\n**提交信息**\\n> ${MESSAGE_ESCAPED}\\n\\n**操作**\\n> [查看构建详情](${PIPELINE_URL})\\n\\n---\\n> 时间: ${TIMESTAMP}\\n> Pipeline #${PIPELINE_NUMBER}\"
|
||||
}
|
||||
}"
|
||||
when:
|
||||
|
||||
Reference in New Issue
Block a user