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 -o StrictHostKeyChecking=no -p 42422 ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_ADDRESS }} 'echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S systemctl stop neobot.service && cd /home/luoxiaolei/neobot/NeoBot && git pull origin main && echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S systemctl start neobot.service' continue-on-error: true - name: 检查部署状态 if: failure() run: | echo "部署失败!请检查服务器日志。" exit 1