编辑文件 my-first-workflow.yaml
This commit is contained in:
@@ -7,9 +7,9 @@ when:
|
|||||||
|
|
||||||
skip_clone: true # 关闭默认clone,手动拉取代码
|
skip_clone: true # 关闭默认clone,手动拉取代码
|
||||||
|
|
||||||
# 流水线核心步骤:修复插件模板兼容+变量验证
|
# 流水线核心步骤:修复所有模板括号缺失问题
|
||||||
steps:
|
steps:
|
||||||
# ========== 0. 变量验证(新增:提前检查关键变量,避免后续解析错误) ==========
|
# ========== 0. 变量验证(提前检查关键变量) ==========
|
||||||
- name: validate env vars
|
- name: validate env vars
|
||||||
image: alpine:latest
|
image: alpine:latest
|
||||||
commands:
|
commands:
|
||||||
@@ -24,7 +24,7 @@ steps:
|
|||||||
done
|
done
|
||||||
# 给可选变量设置默认值
|
# 给可选变量设置默认值
|
||||||
export LOGIN_SERVER_PORT=${LOGIN_SERVER_PORT:-22}
|
export LOGIN_SERVER_PORT=${LOGIN_SERVER_PORT:-22}
|
||||||
# 打印变量(调试用,生产可删除)
|
# 打印变量(调试用)
|
||||||
echo "✅ 变量验证通过:"
|
echo "✅ 变量验证通过:"
|
||||||
echo "LOGIN_SERVER_HOST: ${LOGIN_SERVER_HOST}"
|
echo "LOGIN_SERVER_HOST: ${LOGIN_SERVER_HOST}"
|
||||||
echo "LOGIN_SERVER_USER: ${LOGIN_SERVER_USER}"
|
echo "LOGIN_SERVER_USER: ${LOGIN_SERVER_USER}"
|
||||||
@@ -67,6 +67,7 @@ steps:
|
|||||||
mount:
|
mount:
|
||||||
- /go/pkg/mod
|
- /go/pkg/mod
|
||||||
- /root/.cache/go-build
|
- /root/.cache/go-build
|
||||||
|
# 关键:检查此处{{ }}完全闭合,无缺失
|
||||||
cache_key: '{{ .Repo.Name }}-{{ .Commit.Branch }}-{{ checksum "blazing-project/go.mod" }}-{{ checksum "blazing-project/login/go.mod" }}'
|
cache_key: '{{ .Repo.Name }}-{{ .Commit.Branch }}-{{ checksum "blazing-project/go.mod" }}-{{ checksum "blazing-project/login/go.mod" }}'
|
||||||
|
|
||||||
# ========== 4. 编译Logic和Login服务 ==========
|
# ========== 4. 编译Logic和Login服务 ==========
|
||||||
@@ -112,15 +113,15 @@ steps:
|
|||||||
mount:
|
mount:
|
||||||
- /go/pkg/mod
|
- /go/pkg/mod
|
||||||
- /root/.cache/go-build
|
- /root/.cache/go-build
|
||||||
|
# 关键:检查{{ }}完全闭合
|
||||||
cache_key: '{{ .Repo.Name }}-{{ .Commit.Branch }}-{{ checksum "blazing-project/go.mod" }}-{{ checksum "blazing-project/login/go.mod" }}'
|
cache_key: '{{ .Repo.Name }}-{{ .Commit.Branch }}-{{ checksum "blazing-project/go.mod" }}-{{ checksum "blazing-project/login/go.mod" }}'
|
||||||
|
|
||||||
# ========== 6. SCP推送Login和Logic到指定服务器(核心修复:最简模板语法) ==========
|
# ========== 6. SCP推送产物(检查所有{{ }}闭合) ==========
|
||||||
- name: deploy to login server
|
- name: deploy to login server
|
||||||
image: appleboy/drone-scp:1.6.2
|
image: appleboy/drone-scp:1.6.2
|
||||||
imports: https://cnb.cool/blzing/key/-/blob/main/githubkey.yml
|
imports: https://cnb.cool/blzing/key/-/blob/main/githubkey.yml
|
||||||
depends_on: [rebuild cache]
|
depends_on: [rebuild cache]
|
||||||
settings:
|
settings:
|
||||||
# 核心修复:仅使用最简模板语法 {{ .变量名 }},移除管道符
|
|
||||||
host: {{ .LOGIN_SERVER_HOST }}
|
host: {{ .LOGIN_SERVER_HOST }}
|
||||||
username: {{ .LOGIN_SERVER_USER }}
|
username: {{ .LOGIN_SERVER_USER }}
|
||||||
password: {{ .LOGIN_SERVER_PASSWORD }}
|
password: {{ .LOGIN_SERVER_PASSWORD }}
|
||||||
@@ -133,13 +134,12 @@ steps:
|
|||||||
skip_verify: true
|
skip_verify: true
|
||||||
timeout: 30s
|
timeout: 30s
|
||||||
|
|
||||||
# ========== 7. SSH启动Login服务并移动Logic到Public(核心修复:最简模板语法) ==========
|
# ========== 7. SSH启动服务(检查所有{{ }}闭合) ==========
|
||||||
- name: start login and move logic
|
- name: start login and move logic
|
||||||
image: appleboy/drone-ssh:1.6.2
|
image: appleboy/drone-ssh:1.6.2
|
||||||
imports: https://cnb.cool/blzing/key/-/blob/main/githubkey.yml
|
imports: https://cnb.cool/blzing/key/-/blob/main/githubkey.yml
|
||||||
depends_on: [deploy to login server]
|
depends_on: [deploy to login server]
|
||||||
settings:
|
settings:
|
||||||
# 核心修复:仅使用最简模板语法 {{ .变量名 }}
|
|
||||||
host: {{ .LOGIN_SERVER_HOST }}
|
host: {{ .LOGIN_SERVER_HOST }}
|
||||||
username: {{ .LOGIN_SERVER_USER }}
|
username: {{ .LOGIN_SERVER_USER }}
|
||||||
password: {{ .LOGIN_SERVER_PASSWORD }}
|
password: {{ .LOGIN_SERVER_PASSWORD }}
|
||||||
@@ -167,7 +167,7 @@ steps:
|
|||||||
# 启动新进程
|
# 启动新进程
|
||||||
screen -dmS ${session_name} ./${BIN_NAME}
|
screen -dmS ${session_name} ./${BIN_NAME}
|
||||||
echo "✅ Login服务启动成功 | Screen: ${session_name}"
|
echo "✅ Login服务启动成功 | Screen: ${session_name}"
|
||||||
# 等待服务启动并进行健康检查
|
# 健康检查
|
||||||
sleep 3
|
sleep 3
|
||||||
if screen -list 2>/dev/null | grep -q "${session_name}"; then
|
if screen -list 2>/dev/null | grep -q "${session_name}"; then
|
||||||
echo "✅ 服务健康检查通过 | Screen: ${session_name}"
|
echo "✅ 服务健康检查通过 | Screen: ${session_name}"
|
||||||
@@ -175,7 +175,7 @@ steps:
|
|||||||
echo "❌ 服务健康检查失败 | Screen: ${session_name} 不存在"
|
echo "❌ 服务健康检查失败 | Screen: ${session_name} 不存在"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
# 移动logic产物到public目录
|
# 移动logic产物
|
||||||
LOGIC_BIN=$(ls -t logic_v* 2>/dev/null | head -1)
|
LOGIC_BIN=$(ls -t logic_v* 2>/dev/null | head -1)
|
||||||
if [ -n "$LOGIC_BIN" ]; then
|
if [ -n "$LOGIC_BIN" ]; then
|
||||||
mkdir -p /opt/login/public
|
mkdir -p /opt/login/public
|
||||||
|
|||||||
Reference in New Issue
Block a user