1
This commit is contained in:
@@ -181,70 +181,3 @@ steps:
|
||||
depends_on:
|
||||
- build_logic
|
||||
- fetch-deploy-config
|
||||
|
||||
# ========== 7. 远程部署(依赖SCP推送) ==========
|
||||
deploy-to-servers:
|
||||
image: appleboy/drone-ssh:1.7.0
|
||||
settings:
|
||||
host: ${REMOTE_HOSTS}
|
||||
username: ${REMOTE_USERS}
|
||||
password: ${REMOTE_PASSWORDS}
|
||||
skip_verify: true
|
||||
timeout: 60s
|
||||
script:
|
||||
- |
|
||||
# 安装Screen(增强容错)
|
||||
if ! command -v screen &> /dev/null; then
|
||||
echo "🔧 安装Screen..."
|
||||
if command -v apt &> /dev/null; then
|
||||
apt update -y && apt install -y --no-install-recommends screen -qq
|
||||
elif command -v yum &> /dev/null; then
|
||||
yum install -y screen -q
|
||||
elif command -v dnf &> /dev/null; then
|
||||
dnf install -y screen -q
|
||||
else
|
||||
echo "❌ 不支持的包管理器,安装失败"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
# 验证Screen安装
|
||||
if ! command -v screen &> /dev/null; then
|
||||
echo "❌ Screen安装后检测失败"
|
||||
exit 1
|
||||
fi
|
||||
echo "✅ Screen已安装/存在"
|
||||
- mkdir -p ${REMOTE_EXE_DIR}
|
||||
- chmod +x ${REMOTE_EXE_DIR}/${BIN_NAME} || { echo "❌ 设置执行权限失败"; exit 1; }
|
||||
# 停止旧会话(容错:不存在则忽略)
|
||||
- screen -S ${SCREEN_NAME} -X quit 2>/dev/null || true
|
||||
- |
|
||||
echo "🚀 启动程序:${REMOTE_EXE_DIR}/${BIN_NAME} -id=${REMOTE_ONLINE_IDS}"
|
||||
# 启动新会话,增强日志输出
|
||||
screen -dmS ${SCREEN_NAME} bash -c "\"${REMOTE_EXE_DIR}/${BIN_NAME}\" -id=${REMOTE_ONLINE_IDS} 2>&1 | tee -a ${LOG_PATH}"
|
||||
sleep 3 # 延长等待时间,确保会话启动
|
||||
# 验证会话是否启动
|
||||
if screen -ls | grep -q "${SCREEN_NAME}"; then
|
||||
echo "✅ 启动成功!Screen会话:"
|
||||
screen -ls | grep ${SCREEN_NAME}
|
||||
else
|
||||
echo "❌ 启动失败,无${SCREEN_NAME}会话"
|
||||
screen -ls
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ========== 8. 打印部署汇总(依赖部署完成) ==========
|
||||
print-deploy-info:
|
||||
image: alpine:latest
|
||||
depends_on: [deploy-to-servers]
|
||||
commands:
|
||||
- echo "======================================"
|
||||
- echo "🎉 全量部署完成!"
|
||||
- echo "📌 版本号:${BUILD_VERSION}"
|
||||
- echo "📌 触发方式:${CI_EVENT_NAME}"
|
||||
- echo "📌 部署服务器:${REMOTE_HOSTS}"
|
||||
- echo "📌 OnlineID:${REMOTE_ONLINE_IDS}"
|
||||
- echo "📌 Screen会话:${SCREEN_NAME}"
|
||||
- echo "📌 程序目录:${REMOTE_EXE_DIR}"
|
||||
- echo "📌 日志路径:${LOG_PATH}"
|
||||
- echo "📌 对应Commit:${CI_COMMIT_SHA}"
|
||||
- echo "======================================"
|
||||
|
||||
Reference in New Issue
Block a user