51 lines
1.9 KiB
YAML
51 lines
1.9 KiB
YAML
# 注意:
|
||
# 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", "master" ]
|
||
- event: push
|
||
branch: "v[0-9]*.[0-9]*.[0-9]*"
|
||
- event: push
|
||
branch: "[0-9]*.[0-9]*.[0-9]*"
|
||
- event: tag
|
||
ref: "refs/tags/v[0-9]*.[0-9]*.[0-9]*"
|
||
- event: tag
|
||
ref: "refs/tags/[0-9]*.[0-9]*.[0-9]*"
|
||
|
||
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
|