ci: 规范化 TG 通知与部署触发条件 #3

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