From ea6852aa6f52e5ab474872bfe771c322cd27c730 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E5=BF=B5?= <12574910+72wo@users.noreply.github.com> Date: Mon, 26 Jan 2026 23:33:44 +0800 Subject: [PATCH] =?UTF-8?q?```=20feat(.woodpecker):=20=E6=B7=BB=E5=8A=A0SS?= =?UTF-8?q?H=E5=88=9D=E5=A7=8B=E5=8C=96=E6=AD=A5=E9=AA=A4=E5=B9=B6?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=B5=81=E6=B0=B4=E7=BA=BF=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在Woodpecker流水线配置中添加了SSH初始化步骤,用于创建SSH目录和配置文件, 同时修正了各步骤间的依赖关系以确保正确的执行顺序: - 新增init-ssh步骤,设置SSH基础环境 - cache-go-mod依赖于init-ssh - prepare-go依赖于cache-go-mod - set-version依赖于prepare-go - build-logic依赖于set-version - fetch-deploy-config依赖于build-logic 此改动确保了流水线步骤按正确顺序执行,并为后续的SSH相关 --- .woodpecker/my-first-workflow.yaml | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/.woodpecker/my-first-workflow.yaml b/.woodpecker/my-first-workflow.yaml index 7497cd19..4d8e3e25 100644 --- a/.woodpecker/my-first-workflow.yaml +++ b/.woodpecker/my-first-workflow.yaml @@ -16,6 +16,14 @@ clone: # Woodpecker原生顶层字段3:流水线步骤 steps: + # SSH初始化步骤 + init-ssh: + image: alpine:latest + commands: + - mkdir -p /root/.ssh + - touch /root/.ssh/known_hosts + - chmod 600 /root/.ssh/known_hosts + # 1. 缓存Go依赖(加速构建) cache-go-mod: image: woodpeckerci/plugin-cache @@ -26,6 +34,8 @@ steps: key: ${CI_OS}-go-${CI_COMMIT_SHA:0:8} restore_keys: - ${CI_OS}-go- + depends_on: + - init-ssh # 2. 初始化Go环境 & 预下载依赖 prepare-go: @@ -33,6 +43,8 @@ steps: commands: - go version - go mod download -x + depends_on: + - cache-go-mod # 3. 生成构建版本号(8位短SHA) set-version: @@ -41,6 +53,8 @@ steps: - VERSION="v$(git rev-parse --short=8 HEAD)" - echo "BUILD_VERSION=${VERSION}" >> $CI_ENV_FILE - echo "✅ 生成版本号:${VERSION}" + depends_on: + - prepare-go # 4. 编译Go服务(静态编译,无系统依赖) build-logic: @@ -63,6 +77,8 @@ steps: fi - ls -lh ./build/ - echo "✅ Go服务编译完成" + depends_on: + - set-version # 5. 拉取JSON & 解析服务器/账号/密码/online_id fetch-deploy-config: @@ -89,6 +105,8 @@ steps: - echo "REMOTE_USERS=${REMOTE_USERS}" >> $CI_ENV_FILE - echo "REMOTE_PASSWORDS=${REMOTE_PASSWORDS}" >> $CI_ENV_FILE - echo "REMOTE_ONLINE_IDS=${REMOTE_ONLINE_IDS}" >> $CI_ENV_FILE + depends_on: + - build-logic # 6. SCP推送产物到远程服务器(密码认证) scp-exe-to-servers: @@ -172,4 +190,4 @@ variables: - &screen_name "logic_service" - &remote_exe_dir "/opt/logic" - &json_config_url "https://你的JSON配置地址.com/deploy.json" - - &log_path "$HOME/run.log" \ No newline at end of file + - &log_path "$HOME/run.log"