diff --git a/.woodpecker.yml b/.woodpecker.yml index 257c549..83be1b9 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -413,14 +413,13 @@ steps: # ============================================ # 阶段7: 企业微信通知 # ============================================ - notify-wechat: + notify-wechat-success: image: curlimages/curl:latest environment: WECHAT_WEBHOOK: from_secret: wechat_webhook commands: - | - STATUS="${CI_PIPELINE_STATUS:-unknown}" BRANCH="${CI_COMMIT_BRANCH:-unknown}" COMMIT="${CI_COMMIT_SHA:0:7:-unknown}" MESSAGE="${CI_COMMIT_MESSAGE:-no message}" @@ -429,25 +428,15 @@ steps: REPO_ID="${CI_REPO_ID:-1}" PIPELINE_URL="https://ci.f.novalon.cn/repos/${REPO_ID}/pipeline/${PIPELINE_NUMBER}" - if [ "$STATUS" = "success" ]; then - STATUS_TEXT="成功" - STATUS_COLOR="info" - else - STATUS_TEXT="失败" - STATUS_COLOR="warning" - fi - TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S") - # 简化处理:移除换行符和引号 MESSAGE_CLEAN=$(echo "$MESSAGE" | tr '\n' ' ' | tr '"' "'") - # 使用 heredoc 构建 JSON,避免复杂的转义 JSON_DATA=$(cat < **构建状态**: ${STATUS_TEXT}\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}" + "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}" } } EOF @@ -464,6 +453,46 @@ steps: - release/** status: - success + + notify-wechat-failure: + image: curlimages/curl:latest + environment: + WECHAT_WEBHOOK: + from_secret: wechat_webhook + commands: + - | + BRANCH="${CI_COMMIT_BRANCH:-unknown}" + COMMIT="${CI_COMMIT_SHA:0:7:-unknown}" + MESSAGE="${CI_COMMIT_MESSAGE:-no message}" + AUTHOR="${CI_COMMIT_AUTHOR:-unknown}" + PIPELINE_NUMBER="${CI_PIPELINE_NUMBER:-0}" + REPO_ID="${CI_REPO_ID:-1}" + PIPELINE_URL="https://ci.f.novalon.cn/repos/${REPO_ID}/pipeline/${PIPELINE_NUMBER}" + + TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S") + + MESSAGE_CLEAN=$(echo "$MESSAGE" | tr '\n' ' ' | tr '"' "'") + + JSON_DATA=$(cat < **构建状态**: 失败\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}" + } + } + EOF + ) + + curl -X POST "$WECHAT_WEBHOOK" \ + -H 'Content-Type: application/json' \ + -d "$JSON_DATA" + when: + event: + - push + branch: + - release + - release/** + status: - failure # ============================================