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"