Merge pull request #4 from sparticleinc/master

ci: push to dockerhub, support arm
This commit is contained in:
shuirong 2025-12-17 15:48:30 +09:00 committed by GitHub
commit 0f01fbad3b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -57,6 +57,40 @@ jobs:
if [[ "${CIRCLE_BRANCH}" =~ ^canary.([0-9]{4}.wk[0-9]{2},?)+$ ]]; then
curl -X POST -H "Content-Type: application/json" -d '{"msg_type":"text","content":{"text":"'${CIRCLE_USERNAME}' 触发了灰度环境分支 '${CIRCLE_BRANCH}' 更新与部署"}}' https://open.larksuite.com/open-apis/bot/v2/hook/68004e4a-1381-4886-a982-cd77d5f2e6a1
fi
docker-hub-build-push:
machine:
image: ubuntu-2404:current
resource_class: medium
parameters:
repo:
type: string
dockerfile:
type: string
docker-tag:
type: string
steps:
- run:
name: Build Docker image
command: |
# 检查是否为ARM构建
if [[ "<<parameters.docker-tag>>" == *"arm64"* ]]; then
# 设置Docker buildx进行多平台构建
docker buildx create --use --name multiarch
docker buildx inspect --bootstrap
# 构建ARM64架构的镜像
docker buildx build -t <<parameters.repo>>:<<parameters.docker-tag>> --platform linux/arm64 --no-cache -f <<parameters.dockerfile>> --load .
else
# 普通x86构建
docker build -t <<parameters.repo>>:<<parameters.docker-tag>> --no-cache -f <<parameters.dockerfile>> .
fi
- run:
name: Publish Docker Image to Docker Hub
command: |
echo "$DOCKERHUB_PASS" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin
IMAGE_TAG="0.0.${CIRCLE_BUILD_NUM}"
docker tag <<parameters.repo>>:<<parameters.docker-tag>> <<parameters.repo>>:$IMAGE_TAG
docker push <<parameters.repo>>:<<parameters.docker-tag>>
docker push <<parameters.repo>>:$IMAGE_TAG
workflows:
version: 2
@ -114,3 +148,21 @@ workflows:
- prod
requires:
- build-for-prod
- docker-hub-build-push:
name: docker-hub-build-push
repo: gptbasesparticle/catalog-agent
dockerfile: Dockerfile
docker-tag: latest
filters:
branches:
only:
- onprem
- docker-hub-build-push:
name: docker-hub-build-push-arm
repo: gptbasesparticle/catalog-agent
dockerfile: Dockerfile
docker-tag: latest_arm64
filters:
branches:
only:
- onprem