From 83502207359ef4a3888c05295218032e8d2b864d Mon Sep 17 00:00:00 2001 From: Endial Fang Date: Fri, 9 Jan 2026 18:16:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=20Woodpecker=20?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .woodpecker.yml | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .woodpecker.yml diff --git a/.woodpecker.yml b/.woodpecker.yml new file mode 100644 index 0000000..b67f3c6 --- /dev/null +++ b/.woodpecker.yml @@ -0,0 +1,44 @@ +# 注意: +# 1. git commit 信息中包含"[CI SKIP]"或"[SKIP CI]"则不触发工作流(注意大小写) +# 2. 工作步骤中包含 volumes 挂载时,需在 Woodpecker 配置中添加 volumes 挂载信任(Trust) +# 3. lables 配置项,可配置多个;如果存在,则必须完全符合 Runner 创建时设置的 Lables 配置项 +# 4. command 中,引用自定义变量不能使用`${VAR}`方式,需要使用`$VAR`方式;带花括号的变量,会在 Woodpecker 模板引擎解析阶段被替换(此时变量为空) +# 5. 多架构编译后推送至 SWR 报错,或单架构编译后必须在推送时明确指定架构信息才能推送;可通过在编译命令中增加参数`--provenance=false --sbom=false`解决 +# 6. 使用 Git Submodule 管理通用脚本时,需手动更新 Submodule + +when: + - event: push + branch: main + - event: tag + ref: refs/tags/v* + +labels: + runtime: docker + arch: amd64 + multiarch: "true" + +steps: + - name: 初始化子模块 + image: alpine/git + commands: + - git submodule update --init --recursive + + - name: 编译并推送镜像 + image: docker:cli + volumes: + - /var/run/docker.sock:/var/run/docker.sock + environment: + SWR_REGISTRY: "swr.cn-north-4.myhuaweicloud.com" + DOCKER_CLI_EXPERIMENTAL: enabled + SWR_USERNAME: + from_secret: swr_colovu_user + SWR_PASSWORD: + from_secret: swr_colovu_passwd + commands: + - | + # 直接执行 Submodule .ci/common 下的构建推送脚本 + if [ ! -f ".ci/common/build_push.sh" ]; then + echo "错误: 未找到 .ci/common/build_push.sh 脚本" + exit 1 + fi + - sh ./.ci/common/build_push.sh