Files
scratch/.drone.yml
T
2026-01-05 10:29:48 +08:00

111 lines
3.0 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.
kind: pipeline
type: docker
name: build-multiarch-docker
# 匹配 Runner 标签
node:
runtime: docker
arch: amd64
multiarch: true
# 触发条件
trigger:
include:
- event: push
branch: [main, release/*]
- event: tag
volumes:
- name: docker-sock
host:
path: /var/run/docker.sock
clone:
disable: false
depth: 1
tags: true
steps:
# 登录容器仓库(使用 docker login
- name: registry login
image: docker:24.0-cli # 使用官方 Docker CLI 镜像
volumes:
- name: docker-sock
path: /var/run/docker.sock
environment:
REGISTRY_SERVER: "swr.cn-north-4.myhuaweicloud.com"
REGISTRY_USER:
from_secret: secrets/data/swr_username
REGISTRY_PASSWORD:
from_secret: secrets/swr_password
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 "========================"
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: docker:24.0-cli
volumes:
- name: docker-sock
path: /var/run/docker.sock
environment:
REGISTRY_REPO: "swr.cn-north-4.myhuaweicloud.com/colovu/scratch"
DRONE_TAG: ${DRONE_TAG}
DRONE_COMMIT_SHA: ${DRONE_COMMIT_SHA}
DRONE_BRANCH: ${DRONE_BRANCH}
commands:
- |
set -euo pipefail
if [ -n "${DRONE_TAG:-}" ]; then
IMAGE_TAG="$DRONE_TAG"
else
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_REPO: ${REGISTRY_REPO:-empty}"
echo "IMAGE_TAG: $IMAGE_TAG"
echo "========================"
echo "Building image..."
docker build -t "${REGISTRY_REPO}:${IMAGE_TAG}" .
echo "Pushing image..."
docker push "${REGISTRY_REPO}:${IMAGE_TAG}"
# 可选:打 latest 标签(仅 main 分支)
if [ "${DRONE_BRANCH}" = "main" ]; then
docker tag "${REGISTRY_REPO}:${IMAGE_TAG}" "${REGISTRY_REPO}:latest"
docker push "${REGISTRY_REPO}:latest"
fi
echo "Image pushed: ${REGISTRY_REPO}:${IMAGE_TAG}"
# 清理步骤
- name: cleanup
image: docker:24.0-cli
volumes:
- name: docker-sock
path: /var/run/docker.sock
commands:
- |
echo "Logging out of registry..."
docker logout swr.cn-north-4.myhuaweicloud.com || true
echo "Cleaning up unused images..."
docker system prune -af || true
when:
status: [success, failure]