Files
scratch/.woodpecker.yml
T

74 lines
2.7 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 注意:
# 1. git commit 信息中包含"[CI SKIP]"或"[SKIP CI]"则不触发工作流(注意大小写)
# 2. 工作步骤中包含 volumes 挂载时,需在 Woodpecker 配置中添加 volumes 挂载信任(Trust
# 3. lables 配置项,可配置多个;如果存在,则必须完全符合 Runner 创建时设置的 Lables 配置项
# 4. command 中,引用自定义变量不能使用`${VAR}`方式,需要使用`$VAR`方式;带花括号的变量,会在 Woodpecker 模板引擎解析阶段被替换(此时变量为空)
when:
- event: push
branch: main
- event: tag
ref: refs/tags/v*
labels:
runtime: docker
arch: amd64
multiarch: "true"
steps:
- name: 诊断
image: docker:cli
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
SWR_REGISTRY: "swr.cn-north-4.myhuaweicloud.com/colovu"
commands:
- apk add --no-cache curl jq 2>/dev/null || true
- echo "=== Docker CLI ==="; docker version
- echo "=== Docker Engine API ==="; curl -s --unix-socket /var/run/docker.sock http://localhost/version | jq -r ".ApiVersion"
- env | grep SWR_REGISTRY || echo "SWR_REGISTRY NOT SET!"
- echo "SWR_REGISTRY=[$SWR_REGISTRY]"
- name: 编译并推送镜像
image: docker:cli
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
SWR_REGISTRY: "swr.cn-north-4.myhuaweicloud.com/colovu"
commands:
- env | grep SWR_REGISTRY || echo "SWR_REGISTRY NOT SET!"
- echo "SWR_REGISTRY=[$SWR_REGISTRY]"
- |
echo "ENV DUMP:"
env
- |
if [ -n "${CI_COMMIT_TAG:-}" ]; then
IMAGE_TAG="${CI_COMMIT_TAG}"
else
IMAGE_TAG="${CI_COMMIT_SHA:0:8}"
fi
SWR_REGISTRY_REPO="$SWR_REGISTRY/${CI_REPO_NAME}"
echo "=== Debug Variables ==="
echo "CI_REPO: ${CI_REPO:-empty}"
echo "CI_REPO_NAME: ${CI_REPO_NAME:-empty}"
echo "CI_COMMIT_TAG: ${CI_COMMIT_TAG:-empty}"
echo "CI_COMMIT_SHA: ${CI_COMMIT_SHA:-empty}"
echo "CI_COMMIT_BRANCH: ${CI_COMMIT_BRANCH:-empty}"
echo "SWR_REGISTRY: $SWR_REGISTRY_REPO"
echo "IMAGE_TAG: $IMAGE_TAG"
echo "========================"
echo "Building image..."
docker build -t "$SWR_REGISTRY_REPO:$IMAGE_TAG" .
echo "Pushing image..."
docker push "$SWR_REGISTRY_REPO:$IMAGE_TAG""
# 可选:打 latest 标签(仅 main 分支)
if [ "${CI_COMMIT_BRANCH}" = "main" ]; then
docker tag "$SWR_REGISTRY_REPO:$IMAGE_TAG" "$SWR_REGISTRY_REPO:latest"
docker push "$SWR_REGISTRY_REPO:latest"
fi
echo "Image pushed: $SWR_REGISTRY_REPO:$IMAGE_TAG"