ci: 规范化TG通知 + 安全加固 + 步骤编号修正
Build docker and publish / build (20.15.1) (pull_request) Successful in 8m20s

P01: PR 事件只做构建验证,部署步骤和TG通知仅在 push 时触发
P02: TG_BOT_TOKEN / TG_CHAT_ID 改用 secrets 引用,移除硬编码明文
P03: TG成功通知区分环境(main→生产环境 / internal→测试环境)
P04: 修正步骤编号注释(步骤1-9,消除重复的步骤5/步骤6)

注意:需在 Gitea 仓库 Settings → Secrets 中手动添加
TG_BOT_TOKEN 和 TG_CHAT_ID,并轮换已暴露的旧 Bot Token。

Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
2026-05-25 20:39:31 -07:00
parent fd522b6c71
commit 4f82f18e16
+15 -11
View File
@@ -21,8 +21,8 @@ env:
# SSH私钥(Gitea Secret 名称:AWS
SSH_KEY: ${{ secrets.AWS }}
# TG通知
TG_BOT_TOKEN: 8114337882:AAHkEx03HSu7RxN4IHBJJEnsK9aPPzNLIk0
TG_CHAT_ID: "-4940243803"
TG_BOT_TOKEN: ${{ secrets.TG_BOT_TOKEN }}
TG_CHAT_ID: ${{ secrets.TG_CHAT_ID }}
# Go构建变量
SERVICE: vpn
SERVICE_STYLE: vpn
@@ -51,16 +51,19 @@ jobs:
echo "DOCKER_TAG_SUFFIX=latest" >> $GITHUB_ENV
echo "CONTAINER_NAME=ppanel-server" >> $GITHUB_ENV
echo "DEPLOY_PATH=/opt/ppanel" >> $GITHUB_ENV
echo "DEPLOY_ENV_LABEL=🚀 服务已成功部署到生产环境" >> $GITHUB_ENV
echo "为 main 分支设置生产环境变量"
elif [ "${{ github.ref_name }}" = "internal" ]; then
echo "DOCKER_TAG_SUFFIX=internal" >> $GITHUB_ENV
echo "CONTAINER_NAME=ppanel-server-internal" >> $GITHUB_ENV
echo "DEPLOY_PATH=/root/bindbox" >> $GITHUB_ENV
echo "DEPLOY_ENV_LABEL=🧪 服务已成功部署到测试环境" >> $GITHUB_ENV
echo "为 internal 分支设置开发环境变量"
else
echo "DOCKER_TAG_SUFFIX=${{ github.ref_name }}" >> $GITHUB_ENV
echo "CONTAINER_NAME=ppanel-server-${{ github.ref_name }}" >> $GITHUB_ENV
echo "DEPLOY_PATH=/root/vpn_server_other" >> $GITHUB_ENV
echo "DEPLOY_ENV_LABEL=🔧 服务已成功部署到其他环境" >> $GITHUB_ENV
echo "为其他分支 (${{ github.ref_name }}) 设置环境变量"
fi
@@ -138,7 +141,7 @@ jobs:
echo "镜像推送完成"
# 调试: 打印部署目标(不输出敏感信息)
# 步骤5: 调试 - 打印部署目标(不输出敏感信息)
- name: 🔍 调试 - 打印部署目标
run: |
echo "========== 部署目标调试 =========="
@@ -150,8 +153,9 @@ jobs:
echo "DEPLOY_PATH: ${{ env.DEPLOY_PATH }}"
echo "====================================="
# 步骤5: 传输配置文件
# 步骤6: 传输配置文件
- name: 📂 传输配置文件
if: github.event_name == 'push'
uses: appleboy/scp-action@v0.1.7
with:
host: ${{ env.SSH_HOST }}
@@ -161,8 +165,9 @@ jobs:
source: "docker-compose.cloud.yml"
target: "/tmp/ppanel-deploy/"
# 步骤6: 连接服务器更新并启动
# 步骤7: 连接服务器更新并启动
- name: 🚀 连接服务器更新并启动
if: github.event_name == 'push'
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ env.SSH_HOST }}
@@ -199,9 +204,9 @@ jobs:
echo "✅ 部署命令执行完成"
# 步骤6: TG通知 (成功)
# 步骤8: TG通知 (成功)
- name: 📱 发送成功通知到Telegram
if: success()
if: success() && github.event_name == 'push'
uses: appleboy/telegram-action@master
with:
token: ${{ env.TG_BOT_TOKEN }}
@@ -215,12 +220,12 @@ jobs:
👤 提交者: ${{ github.actor }}
🕐 时间: ${{ github.event.head_commit.timestamp }}
🚀 服务已成功部署到生产环境
${{ env.DEPLOY_ENV_LABEL }}
parse_mode: Markdown
# 步骤5: TG通知 (失败)
# 步骤9: TG通知 (失败)
- name: 📱 发送失败通知到Telegram
if: failure()
if: failure() && github.event_name == 'push'
uses: appleboy/telegram-action@master
with:
token: ${{ env.TG_BOT_TOKEN }}
@@ -236,4 +241,3 @@ jobs:
⚠️ 请检查构建日志获取详细信息
parse_mode: Markdown