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; }
|
||||
continue-on-error: false
|
||||
|
||||
# ========== 原有步骤:配置SSH密钥(强化错误处理) ==========
|
||||
# ========== 原有步骤:配置SSH密钥 ==========
|
||||
- name: 配置SSH密钥并启动ssh-agent
|
||||
id: config_ssh
|
||||
run: |
|
||||
@@ -115,20 +115,10 @@ jobs:
|
||||
mkdir -p ~/.ssh
|
||||
chmod 700 ~/.ssh
|
||||
|
||||
# 处理私钥换行符问题,验证私钥完整性
|
||||
# 处理私钥换行符问题
|
||||
echo "${{ secrets.KEY }}" | tr -d '\r' > ~/.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并加载私钥
|
||||
eval $(ssh-agent -s)
|
||||
export SSH_AGENT_PID SSH_AUTH_SOCK
|
||||
@@ -185,7 +175,7 @@ jobs:
|
||||
echo "=== 服务器部署开始($(date))==="
|
||||
|
||||
# 服务器端也配置清华源(可选,如需在服务器安装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权限
|
||||
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
|
||||
sleep 2
|
||||
|
||||
# 切换到项目目录
|
||||
cd /home/luoxiaolei/neobot/NeoBot || { echo "❌ 项目目录不存在"; exit 1; }
|
||||
echo "📁 当前目录:$(pwd)"
|
||||
|
||||
# 修复文件权限
|
||||
echo "🔧 修复文件权限..."
|
||||
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 "⬇️ 拉取最新代码..."
|
||||
git pull origin main || { echo "❌ 代码拉取失败"; exit 1; }
|
||||
|
||||
# 使用pip3.14升级依赖
|
||||
echo "📦 使用pip3.14升级项目依赖..."
|
||||
# 使用pip3.14更新依赖
|
||||
echo "📦 使用pip3.14更新项目依赖..."
|
||||
if [ -f "requirements.txt" ]; then
|
||||
echo "📄 发现requirements.txt,使用pip3.14安装/升级依赖..."
|
||||
# 尝试使用pip3.14,如果不存在则使用pip3
|
||||
@@ -214,8 +207,8 @@ jobs:
|
||||
echo "✅ pip3.14依赖安装完成"
|
||||
else
|
||||
echo "⚠️ pip3.14未找到,尝试使用pip3..."
|
||||
pip3 install --upgrade -r requirements.txt || { echo "❌ pip3依赖安装失败"; exit 1; }
|
||||
echo "✅ pip3依赖安装完成"
|
||||
pip3 install --upgrade -r requirements.txt || { echo "❌ pip3.14依赖安装失败"; exit 1; }
|
||||
echo "✅ pip3.14依赖安装完成"
|
||||
fi
|
||||
else
|
||||
echo "⚠️ 未找到requirements.txt文件,跳过依赖安装"
|
||||
|
||||
Reference in New Issue
Block a user