Skip to content

Commit 885673d

Browse files
committed
ci: run arm64 at night only; cache builds; push amd64 on push; nightly creates multi-arch manifest
1 parent 245f624 commit 885673d

File tree

1 file changed

+31
-7
lines changed

1 file changed

+31
-7
lines changed

.github/workflows/main.yml

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,10 @@ jobs:
7979
password: ${{ secrets.DOCKERHUB_TOKEN }}
8080

8181
- name: Set up QEMU
82-
if: inputs.push == true || github.event_name == 'push' || github.event_name == 'schedule'
82+
if: github.event_name == 'schedule'
8383
uses: docker/setup-qemu-action@v3
8484
with:
85-
platforms: linux/amd64,linux/arm64
85+
platforms: linux/arm64
8686

8787
- name: Set up Docker Buildx
8888
if: inputs.push == true || github.event_name == 'push' || github.event_name == 'schedule'
@@ -124,13 +124,37 @@ jobs:
124124
docker run --rm --network host curl-edge:${IMAGE_TAG} \
125125
/opt/httpstat.sh -I --http3 https://cloudflare-quic.com/ || true
126126
127-
- name: Build and push
128-
if: inputs.push == true || github.event_name == 'push' || github.event_name == 'schedule'
127+
- name: Build and push (push/dispatch, amd64 only)
128+
if: inputs.push == true || github.event_name == 'push'
129129
uses: docker/build-push-action@v4
130130
with:
131131
context: .
132132
push: true
133-
platforms: linux/amd64,linux/arm64
133+
platforms: linux/amd64
134+
cache-from: type=gha
135+
cache-to: type=gha,mode=max
134136
tags: |
135-
getpagespeed/curl-edge:${{ env.IMAGE_TAG }}
136-
getpagespeed/curl-edge:latest
137+
getpagespeed/curl-edge:amd64-${{ env.IMAGE_TAG }}
138+
getpagespeed/curl-edge:latest-amd64
139+
140+
- name: Build and push (nightly, arm64 only)
141+
if: github.event_name == 'schedule'
142+
uses: docker/build-push-action@v4
143+
with:
144+
context: .
145+
push: true
146+
platforms: linux/arm64
147+
cache-from: type=gha
148+
cache-to: type=gha,mode=max
149+
tags: |
150+
getpagespeed/curl-edge:arm64-${{ env.IMAGE_TAG }}
151+
getpagespeed/curl-edge:latest-arm64
152+
153+
- name: Create multi-arch manifest (nightly)
154+
if: github.event_name == 'schedule'
155+
run: |
156+
docker buildx imagetools create \
157+
-t getpagespeed/curl-edge:${IMAGE_TAG} \
158+
-t getpagespeed/curl-edge:latest \
159+
getpagespeed/curl-edge:amd64-${IMAGE_TAG} \
160+
getpagespeed/curl-edge:arm64-${IMAGE_TAG}

0 commit comments

Comments
 (0)