Skip to content

Commit aaa9586

Browse files
committed
feat: Add multi-arch builds
1 parent 5289a8b commit aaa9586

File tree

1 file changed

+47
-16
lines changed

1 file changed

+47
-16
lines changed

.github/workflows/build-and-push.yaml

+47-16
Original file line numberDiff line numberDiff line change
@@ -100,22 +100,53 @@ jobs:
100100
run: sed -i 's#summary="odh-trustyai-service-operator\"#summary="odh-trustyai-service-operator" \\ \n quay.expires-after=7d#' Dockerfile
101101
- name: Log in to Quay
102102
run: docker login -u ${{ secrets.QUAY_ROBOT_USERNAME }} -p ${{ secrets.QUAY_ROBOT_SECRET }} quay.io
103-
- name: Build main image
104-
run: docker build -t ${{ env.IMAGE_NAME }}:$TAG .
105-
- name: Push main image to Quay
106-
run: docker push ${{ env.IMAGE_NAME }}:$TAG
107-
- name: Build LMES driver image
108-
run: docker build -f Dockerfile.driver -t ${{ env.DRIVER_IMAGE_NAME }}:$TAG .
109-
- name: Push LMES driver image to Quay
110-
run: docker push ${{ env.DRIVER_IMAGE_NAME }}:$TAG
111-
- name: Build LMES job image
112-
run: docker build -f Dockerfile.lmes-job -t ${{ env.JOB_IMAGE_NAME }}:$TAG .
113-
- name: Push LMES job image to Quay
114-
run: docker push ${{ env.JOB_IMAGE_NAME }}:$TAG
115-
- name: Build Guardrails orchestrator image
116-
run: docker build -f Dockerfile.orchestrator -t ${{ env.ORCH_IMAGE_NAME }}:$TAG .
117-
- name: Push Guardrails orchestrator image to Quay
118-
run: docker push ${{ env.ORCH_IMAGE_NAME }}:$TAG
103+
104+
- name: Set up QEMU
105+
if: env.BUILD_CONTEXT == 'main' || env.BUILD_CONTEXT == 'tag'
106+
uses: docker/setup-qemu-action@v3
107+
108+
- name: Set up Docker buildx
109+
if: env.BUILD_CONTEXT == 'main' || env.BUILD_CONTEXT == 'tag'
110+
uses: docker/setup-buildx-action@v3
111+
112+
- name: Build and Push Main Image (multi-arch)
113+
if: env.BUILD_CONTEXT == 'main' || env.BUILD_CONTEXT == 'tag'
114+
uses: docker/build-push-action@v6
115+
with:
116+
context: .
117+
platforms: linux/amd64,linux/s390x,linux/ppc64le
118+
tags: ${{ env.IMAGE_NAME }}:${{ env.TAG }}
119+
push: true
120+
121+
- name: Build and Push LMES Driver Image (multi-arch)
122+
if: env.BUILD_CONTEXT == 'main' || env.BUILD_CONTEXT == 'tag'
123+
uses: docker/build-push-action@v6
124+
with:
125+
context: .
126+
file: Dockerfile.driver
127+
platforms: linux/amd64,linux/s390x,linux/ppc64le
128+
tags: ${{ env.DRIVER_IMAGE_NAME }}:${{ env.TAG }}
129+
push: true
130+
131+
- name: Build and Push LMES Job Image (multi-arch)
132+
if: env.BUILD_CONTEXT == 'main' || env.BUILD_CONTEXT == 'tag'
133+
uses: docker/build-push-action@v6
134+
with:
135+
context: .
136+
file: Dockerfile.lmes-job
137+
platforms: linux/amd64,linux/s390x,linux/ppc64le
138+
tags: ${{ env.JOB_IMAGE_NAME }}:${{ env.TAG }}
139+
push: true
140+
141+
- name: Build and Push Guardrails Orchestrator Image (multi-arch)
142+
if: env.BUILD_CONTEXT == 'main' || env.BUILD_CONTEXT == 'tag'
143+
uses: docker/build-push-action@v6
144+
with:
145+
context: .
146+
file: Dockerfile.orchestrator
147+
platforms: linux/amd64,linux/s390x,linux/ppc64le
148+
tags: ${{ env.ORCH_IMAGE_NAME }}:${{ env.TAG }}
149+
push: true
119150

120151
# Create CI Manifests
121152
- name: Set up manifests for CI

0 commit comments

Comments
 (0)