50 lines
1.6 KiB
YAML
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
|