diff --git a/.woodpecker.yml b/.woodpecker.yml index ac0b324..95e74c9 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -415,23 +415,8 @@ steps: WECHAT_WEBHOOK: from_secret: wechat_webhook commands: - - 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") - - | - cat > /tmp/payload.json < **构建状态**: 成功\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 + - chmod +x scripts/notify-wechat.sh + - WECHAT_WEBHOOK="$WECHAT_WEBHOOK" ./scripts/notify-wechat.sh success when: event: - push @@ -447,23 +432,8 @@ steps: WECHAT_WEBHOOK: from_secret: wechat_webhook commands: - - 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") - - | - cat > /tmp/payload.json < **构建状态**: 失败\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 + - chmod +x scripts/notify-wechat.sh + - WECHAT_WEBHOOK="$WECHAT_WEBHOOK" ./scripts/notify-wechat.sh failure when: event: - push diff --git a/scripts/notify-wechat.sh b/scripts/notify-wechat.sh new file mode 100644 index 0000000..950523b --- /dev/null +++ b/scripts/notify-wechat.sh @@ -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 < **构建状态**: ${STATUS_TEXT}\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