Skip to content

Commit 3abbc70

Browse files
committed
Build different arch portal image parallelly
1 parent 1fc5d29 commit 3abbc70

File tree

1 file changed

+61
-3
lines changed

1 file changed

+61
-3
lines changed

.github/workflows/ci.yaml

Lines changed: 61 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,15 +115,15 @@ jobs:
115115
working-directory: ./portal
116116
if: ${{ !cancelled() }}
117117

118-
portal-image:
118+
portal-image-amd64:
119119
if: ${{ github.repository != 'oursky/authgear-server' }}
120120
runs-on: ubuntu-24.04
121121
needs: portal-test
122122
env:
123123
TARGET: portal
124124
IMAGE_NAME: quay.io/theauthgear/authgear-portal
125125
PUSH_IMAGE: "${{ (github.repository == 'authgear/authgear-server' && github.event_name == 'push') && 'true' || 'false' }}"
126-
BUILD_PLATFORMS: "${{ (github.repository == 'authgear/authgear-server' && github.event_name == 'push') && 'linux/amd64,linux/arm64' || 'linux/amd64' }}"
126+
BUILD_ARCH: amd64
127127
steps:
128128
- uses: actions/checkout@v4
129129
- name: Install qemu for multi arch build
@@ -141,12 +141,70 @@ jobs:
141141
DOCKER_PASSWORD: ${{ secrets.QUAY_ROBOT_TOKEN }}
142142
run: |
143143
printf "$DOCKER_PASSWORD" | docker login --password-stdin --username "$DOCKER_USERNAME" quay.io
144-
- run: make build-image BUILD_PLATFORMS=$BUILD_PLATFORMS PUSH_IMAGE=$PUSH_IMAGE TAG_IMAGE=true TARGET=$TARGET IMAGE_NAME=$IMAGE_NAME
144+
- run: make build-image BUILD_ARCH=$BUILD_ARCH PUSH_IMAGE=$PUSH_IMAGE TARGET=$TARGET IMAGE_NAME=$IMAGE_NAME
145145
- name: docker logout
146146
if: ${{ always() }}
147147
run: |
148148
docker logout quay.io
149149
150+
portal-image-arm64:
151+
if: ${{ github.repository != 'oursky/authgear-server' }}
152+
runs-on: ubuntu-24.04
153+
needs: portal-test
154+
env:
155+
TARGET: portal
156+
IMAGE_NAME: quay.io/theauthgear/authgear-portal
157+
PUSH_IMAGE: "${{ (github.repository == 'authgear/authgear-server' && github.event_name == 'push') && 'true' || 'false' }}"
158+
BUILD_ARCH: amd64
159+
steps:
160+
- uses: actions/checkout@v4
161+
- name: Install qemu for multi arch build
162+
run: docker run --privileged --rm tonistiigi/binfmt --install all
163+
- name: Setup container builder
164+
run: |
165+
docker buildx create \
166+
--name container-builder \
167+
--driver docker-container \
168+
--bootstrap --use
169+
- name: docker login
170+
if: ${{ github.repository == 'authgear/authgear-server' && github.event_name == 'push' }}
171+
env:
172+
DOCKER_USERNAME: ${{ secrets.QUAY_USERNAME }}
173+
DOCKER_PASSWORD: ${{ secrets.QUAY_ROBOT_TOKEN }}
174+
run: |
175+
printf "$DOCKER_PASSWORD" | docker login --password-stdin --username "$DOCKER_USERNAME" quay.io
176+
- run: make build-image BUILD_ARCH=$BUILD_ARCH PUSH_IMAGE=$PUSH_IMAGE TARGET=$TARGET IMAGE_NAME=$IMAGE_NAME
177+
- name: docker logout
178+
if: ${{ always() }}
179+
run: |
180+
docker logout quay.io
181+
182+
portal-image:
183+
if: ${{ github.repository != 'oursky/authgear-server' }}
184+
runs-on: ubuntu-24.04
185+
needs: ["portal-image-amd64", "portal-image-arm64"]
186+
env:
187+
TARGET: authgear
188+
IMAGE_NAME: quay.io/theauthgear/authgear-portal
189+
PUSH_IMAGE: "${{ (github.repository == 'authgear/authgear-server' && github.event_name == 'push') && 'true' || 'false' }}"
190+
SOURCE_ARCHS: arm64,amd64
191+
steps:
192+
- uses: actions/checkout@v4
193+
- name: docker login
194+
if: ${{ github.repository == 'authgear/authgear-server' && github.event_name == 'push' }}
195+
env:
196+
DOCKER_USERNAME: ${{ secrets.QUAY_USERNAME }}
197+
DOCKER_PASSWORD: ${{ secrets.QUAY_ROBOT_TOKEN }}
198+
run: |
199+
printf "$DOCKER_PASSWORD" | docker login --password-stdin --username "$DOCKER_USERNAME" quay.io
200+
- run: make tag-image SOURCE_ARCHS=$SOURCE_ARCHS IMAGE_NAME=$IMAGE_NAME
201+
- name: docker logout
202+
if: ${{ always() }}
203+
run: |
204+
docker logout quay.io
205+
206+
207+
150208
authgear-test:
151209
if: ${{ github.repository != 'oursky/authgear-server' }}
152210
runs-on: ubuntu-24.04

0 commit comments

Comments
 (0)