问题根本原因: - YAML heredoc块格式导致解析器无法正确识别命令类型 - Pipeline #30 显示 'No pipeline steps available' 错误 修复方案: - 将企业微信通知逻辑移至独立脚本文件 scripts/notify-wechat.sh - 简化 .woodpecker.yml 中的通知步骤配置 - 使用标准shell脚本处理环境变量展开 验证: - YAML语法验证通过 - 命令类型检查通过(所有命令均为字符串类型)
This commit is contained in:
+4
-34
@@ -415,23 +415,8 @@ steps:
|
|||||||
WECHAT_WEBHOOK:
|
WECHAT_WEBHOOK:
|
||||||
from_secret: wechat_webhook
|
from_secret: wechat_webhook
|
||||||
commands:
|
commands:
|
||||||
- BRANCH="${CI_COMMIT_BRANCH:-unknown}"
|
- chmod +x scripts/notify-wechat.sh
|
||||||
- COMMIT="${CI_COMMIT_SHA:0:7}"
|
- WECHAT_WEBHOOK="$WECHAT_WEBHOOK" ./scripts/notify-wechat.sh success
|
||||||
- MESSAGE=$(echo "${CI_COMMIT_MESSAGE:-no message}" | tr '\n' ' ' | sed 's/"/\\"/g')
|
|
||||||
- AUTHOR="${CI_COMMIT_AUTHOR:-unknown}"
|
|
||||||
- PIPELINE_NUMBER="${CI_PIPELINE_NUMBER:-0}"
|
|
||||||
- REPO_ID="${CI_REPO_ID:-1}"
|
|
||||||
- TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
|
|
||||||
- |
|
|
||||||
cat > /tmp/payload.json <<EOF
|
|
||||||
{
|
|
||||||
"msgtype": "markdown",
|
|
||||||
"markdown": {
|
|
||||||
"content": "## 🚀 Novalon Website 部署通知\n\n> **构建状态**: <font color=\"info\">成功</font>\n\n**项目信息**\n> 分支: \`${BRANCH}\`\n> 提交: \`${COMMIT}\`\n> 作者: ${AUTHOR}\n\n**提交信息**\n> ${MESSAGE}\n\n**操作**\n> [查看构建详情](https://ci.f.novalon.cn/repos/${REPO_ID}/pipeline/${PIPELINE_NUMBER})\n\n---\n> 时间: ${TIMESTAMP}\n> Pipeline #${PIPELINE_NUMBER}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
- curl -X POST "$WECHAT_WEBHOOK" -H 'Content-Type: application/json' -d @/tmp/payload.json
|
|
||||||
when:
|
when:
|
||||||
event:
|
event:
|
||||||
- push
|
- push
|
||||||
@@ -447,23 +432,8 @@ steps:
|
|||||||
WECHAT_WEBHOOK:
|
WECHAT_WEBHOOK:
|
||||||
from_secret: wechat_webhook
|
from_secret: wechat_webhook
|
||||||
commands:
|
commands:
|
||||||
- BRANCH="${CI_COMMIT_BRANCH:-unknown}"
|
- chmod +x scripts/notify-wechat.sh
|
||||||
- COMMIT="${CI_COMMIT_SHA:0:7}"
|
- WECHAT_WEBHOOK="$WECHAT_WEBHOOK" ./scripts/notify-wechat.sh failure
|
||||||
- MESSAGE=$(echo "${CI_COMMIT_MESSAGE:-no message}" | tr '\n' ' ' | sed 's/"/\\"/g')
|
|
||||||
- AUTHOR="${CI_COMMIT_AUTHOR:-unknown}"
|
|
||||||
- PIPELINE_NUMBER="${CI_PIPELINE_NUMBER:-0}"
|
|
||||||
- REPO_ID="${CI_REPO_ID:-1}"
|
|
||||||
- TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
|
|
||||||
- |
|
|
||||||
cat > /tmp/payload.json <<EOF
|
|
||||||
{
|
|
||||||
"msgtype": "markdown",
|
|
||||||
"markdown": {
|
|
||||||
"content": "## 🚀 Novalon Website 部署通知\n\n> **构建状态**: <font color=\"warning\">失败</font>\n\n**项目信息**\n> 分支: \`${BRANCH}\`\n> 提交: \`${COMMIT}\`\n> 作者: ${AUTHOR}\n\n**提交信息**\n> ${MESSAGE}\n\n**操作**\n> [查看构建详情](https://ci.f.novalon.cn/repos/${REPO_ID}/pipeline/${PIPELINE_NUMBER})\n\n---\n> 时间: ${TIMESTAMP}\n> Pipeline #${PIPELINE_NUMBER}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
- curl -X POST "$WECHAT_WEBHOOK" -H 'Content-Type: application/json' -d @/tmp/payload.json
|
|
||||||
when:
|
when:
|
||||||
event:
|
event:
|
||||||
- push
|
- push
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
BRANCH="${CI_COMMIT_BRANCH:-unknown}"
|
||||||
|
COMMIT="${CI_COMMIT_SHA:0:7}"
|
||||||
|
MESSAGE=$(echo "${CI_COMMIT_MESSAGE:-no message}" | tr '\n' ' ' | sed 's/"/\\"/g')
|
||||||
|
AUTHOR="${CI_COMMIT_AUTHOR:-unknown}"
|
||||||
|
PIPELINE_NUMBER="${CI_PIPELINE_NUMBER:-0}"
|
||||||
|
REPO_ID="${CI_REPO_ID:-1}"
|
||||||
|
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
|
||||||
|
STATUS="${1:-success}"
|
||||||
|
|
||||||
|
if [ "$STATUS" = "success" ]; then
|
||||||
|
STATUS_TEXT="成功"
|
||||||
|
STATUS_COLOR="info"
|
||||||
|
else
|
||||||
|
STATUS_TEXT="失败"
|
||||||
|
STATUS_COLOR="warning"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > /tmp/payload.json <<EOF
|
||||||
|
{
|
||||||
|
"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> [查看构建详情](https://ci.f.novalon.cn/repos/${REPO_ID}/pipeline/${PIPELINE_NUMBER})\n\n---\n> 时间: ${TIMESTAMP}\n> Pipeline #${PIPELINE_NUMBER}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
curl -X POST "$WECHAT_WEBHOOK" \
|
||||||
|
-H 'Content-Type: application/json' \
|
||||||
|
-d @/tmp/payload.json
|
||||||
Reference in New Issue
Block a user