name: Auto Deploy NeoBot (Full Env Secrets) # 触发条件:推送到main分支 或 手动触发 on: push: branches: [ main ] workflow_dispatch: jobs: deploy-to-server: # 关联你的仓库环境(ENV) environment: ENV runs-on: ubuntu-latest steps: - name: 检查环境密钥配置 run: | echo "✅ 已关联环境: ${{ github.environment }}" echo "✅ API_URL 密钥是否存在: ${{ secrets.API_URL != '' }}" echo "✅ API_TOKEN 密钥是否存在: ${{ secrets.NEOBOT_DEPLOY_TOKEN != '' }}" - name: 调用部署API env: # 从环境密钥中读取API地址和Token(均为密文) API_URL: ${{ secrets.API_URL }} API_TOKEN: ${{ secrets.NEOBOT_DEPLOY_TOKEN }} run: | # 安装jq用于解析JSON sudo apt-get update && sudo apt-get install -y jq # 打印关键信息(脱敏,仅验证是否读取到值) echo "📌 调用的API地址(脱敏): $(echo $API_URL | sed 's/http:\/\///; s/\/deploy//')" # 发送POST请求到部署API(所有配置均来自密钥) RESPONSE=$(curl -s -X POST \ $API_URL \ -H "Content-Type: application/json" \ -H "X-API-Token: $API_TOKEN" \ -d '{"script_name":"deploy.sh"}') # 打印完整响应(便于调试) echo "📝 API响应详情:" echo $RESPONSE | jq . # 解析status字段判断部署结果 STATUS=$(echo $RESPONSE | jq -r '.status') if [ "$STATUS" = "success" ]; then echo "✅ 部署成功!" exit 0 else echo "❌ 部署失败!错误信息:$(echo $RESPONSE | jq -r '.message')" exit 1 fi - name: 部署失败通知(可选) if: failure() run: | echo "⚠️ 部署失败,可在此添加通知逻辑"