更新 drone 配置文件

This commit is contained in:
2026-01-05 10:29:48 +08:00
parent 9591c2ac44
commit a30bfdd2a6
+25 -37
View File
@@ -1,10 +1,10 @@
kind: pipeline
type: docker
name: build-multiarch-podman
name: build-multiarch-docker
# 匹配 Runner 标签
node:
runtime: podman
runtime: docker
arch: amd64
multiarch: true
@@ -20,22 +20,18 @@ volumes:
host:
path: /var/run/docker.sock
# 核心:启用 Drone 内置 Git 克隆配置
clone:
disable: false # 启用内置克隆(默认就是 false,显式声明更稳妥)
depth: 1 # 浅克隆,加快速度
tags: true # 拉取标签(适配 Tag 触发)
disable: false
depth: 1
tags: true
steps:
# 登录容器仓库(如 Harbor、Docker Hub、阿里云 ACR
# 登录容器仓库(使用 docker login
- name: registry login
image: quay.io/containers/podman:v4.9
privileged: true
image: docker:24.0-cli # 使用官方 Docker CLI 镜像
volumes:
- name: docker-sock
path: /var/run/docker.sock
- name: containers-config
path: /etc/containers
environment:
REGISTRY_SERVER: "swr.cn-north-4.myhuaweicloud.com"
REGISTRY_USER:
@@ -45,28 +41,24 @@ steps:
commands:
- |
echo "Logging into registry..."
# 调试:打印所有关键变量
echo "=== Debug Variables ==="
echo "REGISTRY_SERVER: $REGISTRY_SERVER"
echo "REGISTRY_USER: ${REGISTRY_USER:-empty}"
echo "REGISTRY_PASSWORD: ${REGISTRY_PASSWORD:-empty}"
echo "========================"
podman login "$REGISTRY_SERVER" -u "$REGISTRY_USER" -p "$REGISTRY_PASSWORD" || {
echo "$REGISTRY_PASSWORD" | docker login "$REGISTRY_SERVER" -u "$REGISTRY_USER" --password-stdin || {
echo "Registry login failed!"
exit 1
}
# 构建并推送镜像
# 构建并推送镜像(使用 docker build/push
- name: build and push
image: quay.io/containers/podman:v4.9
privileged: true
image: docker:24.0-cli
volumes:
- name: docker-sock
path: /var/run/docker.sock
- name: containers-config
path: /etc/containers
environment:
REGISTRY_SERVER: "swr.cn-north-4.myhuaweicloud.com/colovu/scratch"
REGISTRY_REPO: "swr.cn-north-4.myhuaweicloud.com/colovu/scratch"
DRONE_TAG: ${DRONE_TAG}
DRONE_COMMIT_SHA: ${DRONE_COMMIT_SHA}
DRONE_BRANCH: ${DRONE_BRANCH}
@@ -80,43 +72,39 @@ steps:
IMAGE_TAG="${DRONE_COMMIT_SHA:0:8:-unknown}"
fi
# 调试:打印所有关键变量
echo "=== Debug Variables ==="
echo "DRONE_TAG: ${DRONE_TAG:-empty}"
echo "DRONE_COMMIT_SHA: ${DRONE_COMMIT_SHA:-empty}"
echo "DRONE_BRANCH: ${DRONE_BRANCH:-empty}"
echo "REGISTRY_SERVER: ${REGISTRY_SERVER:-empty}"
echo "REGISTRY_REPO: ${REGISTRY_REPO:-empty}"
echo "IMAGE_TAG: $IMAGE_TAG"
echo "========================"
echo "Building image..."
podman build \
--tag "${REGISTRY_SERVER}:${IMAGE_TAG}" \
.
docker build -t "${REGISTRY_REPO}:${IMAGE_TAG}" .
echo "Pushing image..."
podman push "${REGISTRY_SERVER}:${IMAGE_TAG}"
docker push "${REGISTRY_REPO}:${IMAGE_TAG}"
# 可选:打 latest 标签
# 可选:打 latest 标签(仅 main 分支)
if [ "${DRONE_BRANCH}" = "main" ]; then
podman push \
"${REGISTRY_SERVER}:${IMAGE_TAG}" \
"docker://${REGISTRY_SERVER}:latest"
docker tag "${REGISTRY_REPO}:${IMAGE_TAG}" "${REGISTRY_REPO}:latest"
docker push "${REGISTRY_REPO}:latest"
fi
echo "Image pushed: ${REGISTRY_REPO}:${IMAGE_TAG}"
echo "Image pushed: ${REGISTRY_SERVER}:${IMAGE_TAG}"
# 清理步骤(无论成功/失败都执行)
# 清理步骤
- name: cleanup
image: quay.io/containers/podman:v4.9
privileged: true
image: docker:24.0-cli
volumes:
- name: docker-sock
path: /var/run/docker.sock
commands:
- |
echo "Logging out of registry..."
podman logout swr.cn-north-4.myhuaweicloud.com || true
docker logout swr.cn-north-4.myhuaweicloud.com || true
echo "Cleaning up unused images..."
podman system prune -af || true
docker system prune -af || true
when:
status: [success, failure] # 成功/失败都执行清理
status: [success, failure]