Files
NeoBot/.github/workflows/main.yml
2026-01-23 00:52:51 +08:00

50 lines
1.6 KiB
YAML

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