编辑文件 my-first-workflow.yaml
This commit is contained in:
@@ -7,28 +7,25 @@ when:
|
|||||||
|
|
||||||
skip_clone: true # 关闭默认clone,手动拉取代码
|
skip_clone: true # 关闭默认clone,手动拉取代码
|
||||||
|
|
||||||
# 流水线核心步骤:整合新的编译+部署流程
|
# 流水线核心步骤:修复变量解析+YAML格式
|
||||||
steps:
|
steps:
|
||||||
# ========== 1. 替代clone:拉取代码(对应原sync to github) ==========
|
# ========== 1. 替代clone:拉取代码 ==========
|
||||||
- name: prepare
|
- name: prepare
|
||||||
image: debian:bookworm
|
image: debian:bookworm
|
||||||
commands:
|
commands:
|
||||||
# 拉取代码(替换为你的仓库地址变量)
|
|
||||||
- export GIT_CONFIG_URL="https://cnb:${CNB_ACCK}@cnb.cool/blzing/blazing"
|
- export GIT_CONFIG_URL="https://cnb:${CNB_ACCK}@cnb.cool/blzing/blazing"
|
||||||
# 系统初始化
|
|
||||||
- apt update -y
|
- apt update -y
|
||||||
- apt install -y --no-install-recommends ca-certificates curl git openssh-client openssl libssl-dev
|
- apt install -y --no-install-recommends ca-certificates curl git openssh-client openssl libssl-dev
|
||||||
# 拉取代码到项目目录
|
|
||||||
- git clone --depth 1 --progress -v ${GIT_CONFIG_URL} blazing-project
|
- git clone --depth 1 --progress -v ${GIT_CONFIG_URL} blazing-project
|
||||||
- cd blazing-project
|
- cd blazing-project
|
||||||
- echo "✅ 代码拉取完成,当前目录:$(pwd)"
|
- echo "✅ 代码拉取完成,当前目录:$(pwd)"
|
||||||
|
|
||||||
# ========== 2. 生成版本号(前置步骤) ==========
|
# ========== 2. 生成版本号 ==========
|
||||||
- name: set version
|
- name: set version
|
||||||
image: golang:1.23
|
image: golang:1.23
|
||||||
depends_on: [prepare] # 替换原sync to github为prepare
|
depends_on: [prepare]
|
||||||
commands:
|
commands:
|
||||||
- cd blazing-project # 进入项目目录
|
- cd blazing-project
|
||||||
- VERSION="v$(git rev-parse --short=8 HEAD 2>/dev/null || echo "unknown")"
|
- VERSION="v$(git rev-parse --short=8 HEAD 2>/dev/null || echo "unknown")"
|
||||||
- mkdir -p .build-info
|
- mkdir -p .build-info
|
||||||
- echo "BUILD_VERSION=${VERSION}" >> .build-info/.env
|
- echo "BUILD_VERSION=${VERSION}" >> .build-info/.env
|
||||||
@@ -37,13 +34,13 @@ steps:
|
|||||||
# ========== 3. 缓存Go依赖 ==========
|
# ========== 3. 缓存Go依赖 ==========
|
||||||
- name: cache go modules
|
- name: cache go modules
|
||||||
image: meltwater/drone-cache:latest
|
image: meltwater/drone-cache:latest
|
||||||
depends_on: [prepare] # 替换原sync to github为prepare
|
depends_on: [prepare]
|
||||||
settings:
|
settings:
|
||||||
restore: true
|
restore: true
|
||||||
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服务 ==========
|
||||||
- name: build
|
- name: build
|
||||||
@@ -56,8 +53,8 @@ steps:
|
|||||||
- cache go modules
|
- cache go modules
|
||||||
- set version
|
- set version
|
||||||
commands:
|
commands:
|
||||||
- cd blazing-project # 进入项目目录
|
- cd blazing-project
|
||||||
- . .build-info/.env # 加载版本号
|
- . .build-info/.env
|
||||||
- mkdir -p build
|
- mkdir -p build
|
||||||
- |
|
- |
|
||||||
# 编译Logic服务
|
# 编译Logic服务
|
||||||
@@ -76,7 +73,6 @@ steps:
|
|||||||
mv ./build/${BIN_NAME} ../build/
|
mv ./build/${BIN_NAME} ../build/
|
||||||
cd ..
|
cd ..
|
||||||
ls -lh ./build/
|
ls -lh ./build/
|
||||||
# 写入BIN_NAME到环境文件,供后续步骤使用
|
|
||||||
- echo "LOGIC_BIN=logic_${BUILD_VERSION}" >> "${CI_ENV_FILE}"
|
- echo "LOGIC_BIN=logic_${BUILD_VERSION}" >> "${CI_ENV_FILE}"
|
||||||
- echo "LOGIN_BIN=login_${BUILD_VERSION}" >> "${CI_ENV_FILE}"
|
- echo "LOGIN_BIN=login_${BUILD_VERSION}" >> "${CI_ENV_FILE}"
|
||||||
|
|
||||||
@@ -89,38 +85,39 @@ 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推送Login和Logic到指定服务器(核心修复:变量引用) ==========
|
||||||
- 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:
|
||||||
# 核心修复:settings块用Go模板语法 {{}} 引用变量
|
# 核心修复1:变量前加.,符合Woodpecker模板语法规范
|
||||||
host: {{ LOGIN_SERVER_HOST }}
|
# 核心修复2:增加默认值,避免变量为空导致解析错误
|
||||||
username: {{ LOGIN_SERVER_USER }}
|
host: {{ .LOGIN_SERVER_HOST | default "127.0.0.1" }}
|
||||||
password: {{ LOGIN_SERVER_PASSWORD }}
|
username: {{ .LOGIN_SERVER_USER | default "root" }}
|
||||||
port: {{ LOGIN_SERVER_PORT }}
|
password: {{ .LOGIN_SERVER_PASSWORD | default "" }}
|
||||||
|
port: {{ .LOGIN_SERVER_PORT | default "22" }}
|
||||||
source:
|
source:
|
||||||
- ./blazing-project/build/login_*
|
- ./blazing-project/build/login_*
|
||||||
- ./blazing-project/build/logic_*
|
- ./blazing-project/build/logic_*
|
||||||
target: /opt/login/
|
target: /opt/login/
|
||||||
strip_components: 2 # 调整层级:blazing-project/build/xxx → 取xxx
|
strip_components: 2
|
||||||
skip_verify: true
|
skip_verify: true
|
||||||
timeout: 30s
|
timeout: 30s
|
||||||
|
|
||||||
# ========== 7. SSH启动Login服务并上传Logic到Public ==========
|
# ========== 7. SSH启动Login服务并移动Logic到Public(核心修复:变量引用) ==========
|
||||||
- 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:
|
||||||
# 核心修复:settings块用Go模板语法 {{}} 引用变量
|
# 核心修复:变量前加. + 增加默认值
|
||||||
host: {{ LOGIN_SERVER_HOST }}
|
host: {{ .LOGIN_SERVER_HOST | default "127.0.0.1" }}
|
||||||
username: {{ LOGIN_SERVER_USER }}
|
username: {{ .LOGIN_SERVER_USER | default "root" }}
|
||||||
password: {{ LOGIN_SERVER_PASSWORD }}
|
password: {{ .LOGIN_SERVER_PASSWORD | default "" }}
|
||||||
port: {{ LOGIN_SERVER_PORT }}
|
port: {{ .LOGIN_SERVER_PORT | default "22" }}
|
||||||
script:
|
script:
|
||||||
- |
|
- |
|
||||||
cd /opt/login
|
cd /opt/login
|
||||||
|
|||||||
Reference in New Issue
Block a user