diff --git a/.gitea/workflows/docker.yml b/.gitea/workflows/docker.yml index a5740a0..982139e 100644 --- a/.gitea/workflows/docker.yml +++ b/.gitea/workflows/docker.yml @@ -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 @@ -43,7 +43,7 @@ jobs: # 步骤1: 下载代码 - name: 📥 下载代码 uses: actions/checkout@v4 - + # 步骤2: 设置动态环境变量 - name: ⚙️ 设置动态环境变量 run: | @@ -51,19 +51,22 @@ 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 - + # 步骤3: 安装系统工具 (curl, jq) 并升级 Docker CLI 到 1.44+ - name: 🔧 安装系统工具并升级 Docker CLI run: | @@ -111,7 +114,7 @@ jobs: docker --version || true docker version || true echo "客户端 API 版本:" $(docker version --format '{{.Client.APIVersion}}') - + # 步骤4: 构建并发布到镜像仓库 - name: 📤 构建并发布到镜像仓库 run: | @@ -129,16 +132,16 @@ jobs: -t ${{ env.REPO }}:${{ env.VERSION }} \ -t ${{ env.REPO }}:${{ env.DOCKER_TAG_SUFFIX }} \ . - + echo "推送版本标签镜像: ${{ env.REPO }}:${{ env.VERSION }}" docker push ${{ env.REPO }}:${{ env.VERSION }} - + echo "推送分支标签镜像: ${{ env.REPO }}:${{ env.DOCKER_TAG_SUFFIX }}" docker push ${{ env.REPO }}:${{ env.DOCKER_TAG_SUFFIX }} - + 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 }} @@ -196,44 +201,43 @@ jobs: docker-compose -f docker-compose.cloud.yml up -d ppanel-server docker image prune -f || true fi - + 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 }} to: ${{ env.TG_CHAT_ID }} message: | ✅ 部署成功! - + 📦 项目: ${{ github.repository }} 🌿 分支: ${{ github.ref_name }} 📝 提交: ${{ github.sha }} 👤 提交者: ${{ 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 }} to: ${{ env.TG_CHAT_ID }} message: | ❌ 部署失败! - + 📦 项目: ${{ github.repository }} 🌿 分支: ${{ github.ref_name }} 📝 提交: ${{ github.sha }} 👤 提交者: ${{ github.actor }} 🕐 时间: ${{ github.event.head_commit.timestamp }} - + ⚠️ 请检查构建日志获取详细信息 parse_mode: Markdown -