diff --git a/.woodpecker/my-first-workflow.yaml b/.woodpecker/my-first-workflow.yaml index b5240e62..60879424 100644 --- a/.woodpecker/my-first-workflow.yaml +++ b/.woodpecker/my-first-workflow.yaml @@ -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 "======================================"