From b3e30e7d84cbc81ce7ba77080b28b5f30b3cb663 Mon Sep 17 00:00:00 2001 From: OG T Date: Wed, 1 Apr 2026 11:00:20 +0800 Subject: [PATCH] =?UTF-8?q?fix(cd):=20=E4=BF=AE=E5=BE=A9=20Telegram=20?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=20400=20=E9=8C=AF=E8=AA=A4=20-=20=E6=94=B9?= =?UTF-8?q?=E7=94=A8=20printf=20+=20data-urlencode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit %0A 在 curl -d 不會被 Telegram 正確解析導致 400。 改用 printf '%b' + --data-urlencode 'text@-' 管道方式, 確保換行符正確 URL encode 後傳送。 Co-Authored-By: Claude Sonnet 4.6 --- .gitea/workflows/cd.yaml | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/.gitea/workflows/cd.yaml b/.gitea/workflows/cd.yaml index f22a5ba6..d3eceb6f 100644 --- a/.gitea/workflows/cd.yaml +++ b/.gitea/workflows/cd.yaml @@ -43,11 +43,13 @@ jobs: echo "start_time=$(date +%s)" >> $GITHUB_OUTPUT - name: Notify Pipeline Start + env: + TG_MSG: "🚀 AWOOOI 部署開始\n├ 📝 ${{ steps.commit.outputs.message }}\n├ 🔖 ${{ steps.commit.outputs.short_sha }}\n├ 👤 ${{ github.actor }}\n└ 🌿 main" run: | - curl -fS -X POST "https://api.telegram.org/bot${{ secrets.TELEGRAM_BOT_TOKEN }}/sendMessage" \ - -d chat_id="${{ secrets.TELEGRAM_CHAT_ID }}" \ - -d parse_mode="HTML" \ - -d "text=🚀 AWOOOI 部署開始%0A├ 📝 ${{ steps.commit.outputs.message }}%0A├ 🔖 ${{ steps.commit.outputs.short_sha }}%0A├ 👤 ${{ github.actor }}%0A└ 🌿 main" + printf '%b' "$TG_MSG" | curl -fS -X POST "https://api.telegram.org/bot${{ secrets.TELEGRAM_BOT_TOKEN }}/sendMessage" \ + -d "chat_id=${{ secrets.TELEGRAM_CHAT_ID }}" \ + -d "parse_mode=HTML" \ + --data-urlencode "text@-" @@ -206,20 +208,24 @@ jobs: CHECK - name: Notify Health Check Success + env: + TG_MSG: "✅ AWOOOI 部署完成\n├ 📝 ${{ steps.commit.outputs.message }}\n├ 🔖 ${{ steps.commit.outputs.short_sha }}\n├ ⏱️ 耗時: ${MINUTES}m ${SECONDS}s\n├ 📦 API: ✅ Web: ✅\n└ 🩺 Health: ✅" run: | END_TIME=$(date +%s) DURATION=$((END_TIME - ${{ steps.commit.outputs.start_time }})) MINUTES=$((DURATION / 60)) SECONDS=$((DURATION % 60)) - curl -fS -X POST "https://api.telegram.org/bot${{ secrets.TELEGRAM_BOT_TOKEN }}/sendMessage" \ - -d chat_id="${{ secrets.TELEGRAM_CHAT_ID }}" \ - -d parse_mode="HTML" \ - -d "text=✅ AWOOOI 部署完成%0A├ 📝 ${{ steps.commit.outputs.message }}%0A├ 🔖 ${{ steps.commit.outputs.short_sha }}%0A├ ⏱️ 耗時: ${MINUTES}m ${SECONDS}s%0A├ 📦 API: ✅ Web: ✅%0A└ 🩺 Health: ✅" + printf '%b' "$TG_MSG" | curl -fS -X POST "https://api.telegram.org/bot${{ secrets.TELEGRAM_BOT_TOKEN }}/sendMessage" \ + -d "chat_id=${{ secrets.TELEGRAM_CHAT_ID }}" \ + -d "parse_mode=HTML" \ + --data-urlencode "text@-" - name: Notify Pipeline Failure if: failure() + env: + TG_MSG: "❌ AWOOOI 部署失敗\n├ 📝 ${{ steps.commit.outputs.message }}\n├ 🔖 ${{ steps.commit.outputs.short_sha }}\n├ 👤 ${{ github.actor }}\n└ 🔗 查看日誌" run: | - curl -fS -X POST "https://api.telegram.org/bot${{ secrets.TELEGRAM_BOT_TOKEN }}/sendMessage" \ - -d chat_id="${{ secrets.TELEGRAM_CHAT_ID }}" \ - -d parse_mode="HTML" \ - -d "text=❌ AWOOOI 部署失敗%0A├ 📝 ${{ steps.commit.outputs.message }}%0A├ 🔖 ${{ steps.commit.outputs.short_sha }}%0A├ 👤 ${{ github.actor }}%0A└ 🔗 查看日誌" + printf '%b' "$TG_MSG" | curl -fS -X POST "https://api.telegram.org/bot${{ secrets.TELEGRAM_BOT_TOKEN }}/sendMessage" \ + -d "chat_id=${{ secrets.TELEGRAM_CHAT_ID }}" \ + -d "parse_mode=HTML" \ + --data-urlencode "text@-"