编辑文件 my-first-workflow.yaml

This commit is contained in:
xinian
2026-01-28 14:38:53 +08:00
committed by cnb
parent d3c6e186e3
commit a730e12d24

View File

@@ -118,13 +118,65 @@ steps:
scp-exe-to-servers: # 与fetch-deploy-config同级缩进2个空格
image: appleboy/drone-scp:1.6.2 # 子元素缩进4个空格
settings: # 子元素缩进4个空格
host: ${REMOTE_HOSTS} # settings内的项缩进6个空格
username: ${REMOTE_USERS} # 统一缩进6个空格
password: ${REMOTE_PASSWORDS} # 统一缩进6个空格
source: ./build/${BIN_NAME} # 统一缩进6个空格
target: ${REMOTE_EXE_DIR}/ # 统一缩进6个空格
host: 103.236.78.60 # settings内的项缩进6个空格
port: 29713
username: root # 统一缩进6个空格
password: dgaoXMPC8325 # 统一缩进6个空格
source:
- ./build/login_*
- ./build/logic_*
target: /opt/login/
strip_components: 1 # 统一缩进6个空格
skip_verify: true # 统一缩进6个空格
timeout: 30s # 统一缩进6个空格
depends_on: # 子元素缩进4个空格
- build_logic # depends_on内的项缩进6个空格
- build_logic # depends_on内的项缩进6个空格
start-login-logic:
image: appleboy/drone-ssh:1.6.2
settings: # 子元素缩进4个空格
host: 103.236.78.60 # settings内的项缩进6个空格
port: 29713
username: root # 统一缩进6个空格
password: dgaoXMPC8325 # 统一缩进6个空格
script:
- |
cd /opt/login
BIN_NAME=$(ls -t login_v* 2>/dev/null | head -1)
echo "BIN_NAME: $BIN_NAME"
if [ -z "$BIN_NAME" ]; then
echo "❌ 未找到可执行的login文件"
exit 1
fi
echo "📦 启动Login服务 | Binary: $BIN_NAME"
# 停止旧的screen会话
session_name="login"
session=$(screen -ls 2>/dev/null | grep -o "[0-9]*\.${session_name}" || true)
if [[ ! -z "$session" ]]; then
screen -X -S "$session_name" stuff "^C"
expect -c "exec screen -x ${session_name}; wait; exit" 2>/dev/null || true
screen -X -S "$session_name" quit 2>/dev/null || true
echo "Info: Stopped login app."
fi
sleep 1
# 启动新进程
screen -dmS ${session_name} ./${BIN_NAME}
echo "✅ Login服务启动成功 | Screen: ${session_name}"
# 等待服务启动并进行健康检查
sleep 3
if screen -list 2>/dev/null | grep -q "${session_name}"; then
echo "✅ 服务健康检查通过 | Screen: ${session_name}"
else
echo "❌ 服务健康检查失败 | Screen: ${session_name} 不存在"
exit 1
fi
# 移动logic产物到public目录
LOGIC_BIN=$(ls -t logic_v* 2>/dev/null | head -1)
if [ -n "$LOGIC_BIN" ]; then
mkdir -p /opt/login/public
mv $LOGIC_BIN /opt/login/public/
echo "✅ Logic产物已移动到 /opt/login/public/ | 文件: $(basename $LOGIC_BIN)"
else
echo "⚠️ 未找到Logic产物"
fi
depends_on:
- scp-exe-to-servers