name: 部署到生产环境 on: push: branches: [ main ] pull_request: branches: [ main ] workflow_dispatch: inputs: reason: description: '手动触发部署的原因' required: false default: '手动部署' jobs: deploy: runs-on: ubuntu-latest environment: SSH-KEY steps: - uses: actions/checkout@v4 - name: 安装依赖工具 run: sudo apt-get install -y sshpass expect - name: 执行部署 run: | sshpass -p "${{ secrets.SERVER_PASSWORD }}" ssh -t -o StrictHostKeyChecking=no -p 42422 ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_ADDRESS }} ' echo "测试sudo权限..." && echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S whoami && echo "停止服务..." && echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S systemctl stop neobot.service && echo "修复文件权限..." && echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S chown -R ${{ secrets.SERVER_USER }}:${{ secrets.SERVER_USER }} /home/luoxiaolei/neobot/NeoBot && cd /home/luoxiaolei/neobot/NeoBot && echo "配置Git安全目录..." && git config --global --add safe.directory /home/luoxiaolei/neobot/NeoBot && echo "拉取最新代码..." && git pull origin main && echo "启动服务..." && echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S systemctl start neobot.service && echo "部署完成!" ' continue-on-error: true - name: 检查部署状态 if: failure() run: | echo "部署失败!请检查服务器日志。" exit 1