Update main.yml
This commit is contained in:
31
.github/workflows/main.yml
vendored
31
.github/workflows/main.yml
vendored
@@ -104,7 +104,7 @@ jobs:
|
|||||||
expect -v >/dev/null || { echo "❌ expect安装后不可用"; exit 1; }
|
expect -v >/dev/null || { echo "❌ expect安装后不可用"; exit 1; }
|
||||||
continue-on-error: false
|
continue-on-error: false
|
||||||
|
|
||||||
# ========== 原有步骤:配置SSH密钥(强化错误处理) ==========
|
# ========== 原有步骤:配置SSH密钥 ==========
|
||||||
- name: 配置SSH密钥并启动ssh-agent
|
- name: 配置SSH密钥并启动ssh-agent
|
||||||
id: config_ssh
|
id: config_ssh
|
||||||
run: |
|
run: |
|
||||||
@@ -115,20 +115,10 @@ jobs:
|
|||||||
mkdir -p ~/.ssh
|
mkdir -p ~/.ssh
|
||||||
chmod 700 ~/.ssh
|
chmod 700 ~/.ssh
|
||||||
|
|
||||||
# 处理私钥换行符问题,验证私钥完整性
|
# 处理私钥换行符问题
|
||||||
echo "${{ secrets.KEY }}" | tr -d '\r' > ~/.ssh/id_rsa
|
echo "${{ secrets.KEY }}" | tr -d '\r' > ~/.ssh/id_rsa
|
||||||
chmod 600 ~/.ssh/id_rsa
|
chmod 600 ~/.ssh/id_rsa
|
||||||
|
|
||||||
# 验证私钥格式
|
|
||||||
if ! head -n 1 ~/.ssh/id_rsa | grep -q "BEGIN"; then
|
|
||||||
echo "❌ 私钥文件格式错误,未找到BEGIN标记"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if ! tail -n 1 ~/.ssh/id_rsa | grep -q "END"; then
|
|
||||||
echo "❌ 私钥文件格式错误,未找到END标记"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 启动ssh-agent并加载私钥
|
# 启动ssh-agent并加载私钥
|
||||||
eval $(ssh-agent -s)
|
eval $(ssh-agent -s)
|
||||||
export SSH_AGENT_PID SSH_AUTH_SOCK
|
export SSH_AGENT_PID SSH_AUTH_SOCK
|
||||||
@@ -185,7 +175,7 @@ jobs:
|
|||||||
echo "=== 服务器部署开始($(date))==="
|
echo "=== 服务器部署开始($(date))==="
|
||||||
|
|
||||||
# 服务器端也配置清华源(可选,如需在服务器安装pip依赖)
|
# 服务器端也配置清华源(可选,如需在服务器安装pip依赖)
|
||||||
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple || true
|
pip3.14 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple || true
|
||||||
|
|
||||||
# 测试sudo权限
|
# 测试sudo权限
|
||||||
echo "${SERVER_PASSWORD}" | sudo -S -k -p '' whoami || { echo "❌ sudo权限验证失败"; exit 1; }
|
echo "${SERVER_PASSWORD}" | sudo -S -k -p '' whoami || { echo "❌ sudo权限验证失败"; exit 1; }
|
||||||
@@ -195,17 +185,20 @@ jobs:
|
|||||||
echo "${SERVER_PASSWORD}" | sudo -S -k -p '' systemctl stop neobot.service || true
|
echo "${SERVER_PASSWORD}" | sudo -S -k -p '' systemctl stop neobot.service || true
|
||||||
sleep 2
|
sleep 2
|
||||||
|
|
||||||
|
# 切换到项目目录
|
||||||
|
cd /home/luoxiaolei/neobot/NeoBot || { echo "❌ 项目目录不存在"; exit 1; }
|
||||||
|
echo "📁 当前目录:$(pwd)"
|
||||||
|
|
||||||
# 修复文件权限
|
# 修复文件权限
|
||||||
echo "🔧 修复文件权限..."
|
echo "🔧 修复文件权限..."
|
||||||
echo "${SERVER_PASSWORD}" | sudo -S -k -p '' chown -R "${SERVER_USER}":"${SERVER_USER}" /home/luoxiaolei/neobot/NeoBot || { echo "❌ 文件权限修复失败"; exit 1; }
|
echo "${SERVER_PASSWORD}" | sudo -S -k -p '' chown -R "${SERVER_USER}":"${SERVER_USER}" /home/luoxiaolei/neobot/NeoBot || { echo "❌ 文件权限修复失败"; exit 1; }
|
||||||
|
|
||||||
# 拉取代码
|
# 拉取最新代码
|
||||||
cd /home/luoxiaolei/neobot/NeoBot || { echo "❌ 项目目录不存在"; exit 1; }
|
|
||||||
echo "⬇️ 拉取最新代码..."
|
echo "⬇️ 拉取最新代码..."
|
||||||
git pull origin main || { echo "❌ 代码拉取失败"; exit 1; }
|
git pull origin main || { echo "❌ 代码拉取失败"; exit 1; }
|
||||||
|
|
||||||
# 使用pip3.14升级依赖
|
# 使用pip3.14更新依赖
|
||||||
echo "📦 使用pip3.14升级项目依赖..."
|
echo "📦 使用pip3.14更新项目依赖..."
|
||||||
if [ -f "requirements.txt" ]; then
|
if [ -f "requirements.txt" ]; then
|
||||||
echo "📄 发现requirements.txt,使用pip3.14安装/升级依赖..."
|
echo "📄 发现requirements.txt,使用pip3.14安装/升级依赖..."
|
||||||
# 尝试使用pip3.14,如果不存在则使用pip3
|
# 尝试使用pip3.14,如果不存在则使用pip3
|
||||||
@@ -214,8 +207,8 @@ jobs:
|
|||||||
echo "✅ pip3.14依赖安装完成"
|
echo "✅ pip3.14依赖安装完成"
|
||||||
else
|
else
|
||||||
echo "⚠️ pip3.14未找到,尝试使用pip3..."
|
echo "⚠️ pip3.14未找到,尝试使用pip3..."
|
||||||
pip3 install --upgrade -r requirements.txt || { echo "❌ pip3依赖安装失败"; exit 1; }
|
pip3 install --upgrade -r requirements.txt || { echo "❌ pip3.14依赖安装失败"; exit 1; }
|
||||||
echo "✅ pip3依赖安装完成"
|
echo "✅ pip3.14依赖安装完成"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "⚠️ 未找到requirements.txt文件,跳过依赖安装"
|
echo "⚠️ 未找到requirements.txt文件,跳过依赖安装"
|
||||||
|
|||||||
Reference in New Issue
Block a user