Skip to content

Commit fdaa77a

Browse files
committed
ci: separate openclaw-base build from manager/worker release
- Add build-base.yml: triggers on openclaw-base/ changes, pushes openclaw-base:latest - build.yml: remove push-openclaw-base from release flow, only build manager+worker - Makefile: make build/push both use registry openclaw-base:latest for layer sharing build no longer rebuilds base locally; use make build-openclaw-base if needed
1 parent 6bd2a02 commit fdaa77a

File tree

3 files changed

+68
-6
lines changed

3 files changed

+68
-6
lines changed

.github/workflows/build-base.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Build Base Image
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
branches:
7+
- main
8+
paths:
9+
- 'openclaw-base/**'
10+
11+
env:
12+
REGISTRY: higress-registry.cn-hangzhou.cr.aliyuncs.com
13+
REPO: higress
14+
15+
jobs:
16+
build-base:
17+
runs-on: ubuntu-latest
18+
permissions:
19+
contents: read
20+
21+
steps:
22+
- name: Free Up GitHub Actions Ubuntu Runner Disk Space 🔧
23+
uses: jlumbroso/free-disk-space@main
24+
with:
25+
tool-cache: false
26+
android: true
27+
dotnet: true
28+
haskell: true
29+
large-packages: true
30+
swap-storage: true
31+
32+
- name: Checkout
33+
uses: actions/checkout@v4
34+
35+
- name: Set up QEMU
36+
uses: docker/setup-qemu-action@v3
37+
38+
- name: Set up Docker Buildx
39+
uses: docker/setup-buildx-action@v3
40+
41+
- name: Login to Registry
42+
uses: docker/login-action@v3
43+
with:
44+
registry: ${{ env.REGISTRY }}
45+
username: ${{ secrets.REGISTRY_USERNAME }}
46+
password: ${{ secrets.REGISTRY_PASSWORD }}
47+
48+
- name: Build and push multi-arch base image
49+
run: |
50+
make push-openclaw-base \
51+
VERSION=latest \
52+
REGISTRY=${{ env.REGISTRY }} \
53+
REPO=${{ env.REPO }}
54+
55+
- name: Summary
56+
run: |
57+
echo "### Base Image Build Summary" >> $GITHUB_STEP_SUMMARY
58+
echo "- OpenClaw Base: \`${{ env.REGISTRY }}/${{ env.REPO }}/openclaw-base:latest\`" >> $GITHUB_STEP_SUMMARY
59+
echo "- Platforms: \`linux/amd64, linux/arm64\`" >> $GITHUB_STEP_SUMMARY
60+
echo "- Trigger: \`${{ github.event_name }}\` on \`${{ github.ref_name }}\`" >> $GITHUB_STEP_SUMMARY

.github/workflows/build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ jobs:
6262
# also pushes :latest in the same buildx call, so no separate step needed.
6363
- name: Build and push multi-arch images
6464
run: |
65-
make push \
65+
make push-manager push-worker \
6666
VERSION=${{ steps.meta.outputs.version }} \
6767
REGISTRY=${{ env.REGISTRY }} \
6868
REPO=${{ env.REPO }}
@@ -74,7 +74,7 @@ jobs:
7474
WORKER_IMAGE: ${{ env.REGISTRY }}/${{ env.REPO }}/hiclaw-worker
7575
run: |
7676
echo "### Build Summary" >> $GITHUB_STEP_SUMMARY
77-
echo "- OpenClaw Base: \`${OPENCLAW_BASE_IMAGE}:${{ steps.meta.outputs.version }}\`" >> $GITHUB_STEP_SUMMARY
7877
echo "- Manager: \`${MANAGER_IMAGE}:${{ steps.meta.outputs.version }}\`" >> $GITHUB_STEP_SUMMARY
7978
echo "- Worker: \`${WORKER_IMAGE}:${{ steps.meta.outputs.version }}\`" >> $GITHUB_STEP_SUMMARY
79+
echo "- Base: \`${OPENCLAW_BASE_IMAGE}:latest\` (pre-built, not rebuilt here)" >> $GITHUB_STEP_SUMMARY
8080
echo "- Platforms: \`linux/amd64, linux/arm64\`" >> $GITHUB_STEP_SUMMARY

Makefile

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ all: build
8282

8383
# ---------- Build ----------
8484

85-
build: build-openclaw-base build-manager build-worker ## Build all images
85+
build: build-manager build-worker ## Build all images (base image pulled from registry, not rebuilt locally)
8686

8787
build-openclaw-base: ## Build OpenClaw base image
8888
@echo "==> Building OpenClaw base image: $(LOCAL_OPENCLAW_BASE) (registry: $(HIGRESS_REGISTRY))"
@@ -91,8 +91,10 @@ build-openclaw-base: ## Build OpenClaw base image
9191
./openclaw-base/
9292

9393
# build targets use the locally-built openclaw-base; push targets use the registry image
94-
OPENCLAW_BASE_BUILD_ARG = --build-arg OPENCLAW_BASE_IMAGE=$(LOCAL_OPENCLAW_BASE)
95-
OPENCLAW_BASE_PUSH_ARG = --build-arg OPENCLAW_BASE_IMAGE=$(OPENCLAW_BASE_TAG)
94+
# Both build and push targets use the registry :latest base image for layer sharing
95+
OPENCLAW_BASE_BUILD_ARG = --build-arg OPENCLAW_BASE_IMAGE=$(OPENCLAW_BASE_IMAGE):latest
96+
# push targets always use :latest so manager/worker layers are shared across releases
97+
OPENCLAW_BASE_PUSH_ARG = --build-arg OPENCLAW_BASE_IMAGE=$(OPENCLAW_BASE_IMAGE):latest
9698

9799
build-manager: ## Build Manager image
98100
@echo "==> Building Manager image: $(LOCAL_MANAGER) (registry: $(HIGRESS_REGISTRY))"
@@ -141,7 +143,7 @@ else
141143
fi
142144
endif
143145

144-
push: push-openclaw-base push-manager push-worker ## Build + push multi-arch images (amd64 + arm64)
146+
push: push-manager push-worker ## Build + push multi-arch images (amd64 + arm64); base image built separately via build-base.yml
145147

146148
push-openclaw-base: buildx-setup ## Build + push multi-arch OpenClaw base image
147149
@echo "==> Building + pushing multi-arch OpenClaw base: $(OPENCLAW_BASE_TAG) [$(MULTIARCH_PLATFORMS)]"

0 commit comments

Comments
 (0)