Skip to content

Commit 87be793

Browse files
committed
Add arm-generic target
1 parent 132233a commit 87be793

File tree

1 file changed

+33
-25
lines changed

1 file changed

+33
-25
lines changed

.github/workflows/publish-docker-images.yml

Lines changed: 33 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ env:
9393

9494
jobs:
9595
prepare:
96-
runs-on: ubuntu-latest
96+
runs-on: ubuntu-24.04
9797
outputs:
9898
version: ${{ steps.extract-version.outputs.version }}
9999
commit_sha: ${{ steps.extract-commit.outputs.commit_sha }}
@@ -152,9 +152,9 @@ jobs:
152152
if: ( !failure() && !cancelled() && inputs.publish_dependency )
153153
strategy:
154154
matrix:
155-
arch: [amd64, arm64]
155+
arch: [amd64, arm64-generic, arm64]
156156
fail-fast: false
157-
runs-on: ${{ matrix.arch == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }}
157+
runs-on: ${{ matrix.arch == 'amd64' && 'ubuntu-24.04' || 'ubuntu-24.04-arm' }}
158158
environment: release
159159
permissions:
160160
packages: write
@@ -218,7 +218,7 @@ jobs:
218218
219219
if [[ "${{ inputs.os }}" == "ubuntu" ]]; then
220220
echo "DEPENDENCY_TARGET=ubuntu-native-dependency" >> $GITHUB_ENV
221-
echo "LOCAL_IMAGE_TAG=presto/prestissimo-dependency:ubuntu-22.04" >> $GITHUB_ENV
221+
echo "LOCAL_IMAGE_TAG=presto/prestissimo-dependency:ubuntu-24.04" >> $GITHUB_ENV
222222
else
223223
echo "DEPENDENCY_TARGET=centos-native-dependency" >> $GITHUB_ENV
224224
echo "LOCAL_IMAGE_TAG=presto/prestissimo-dependency:centos9" >> $GITHUB_ENV
@@ -233,7 +233,7 @@ jobs:
233233
df -h
234234
echo "Using image tag: $IMAGE_TAG"
235235
236-
if [[ "${{ matrix.arch }}" == "arm64" ]]; then
236+
if [[ "${{ matrix.arch }}" == "arm64-generic" ]]; then
237237
BUILD_ARGS="--build-arg ARM_BUILD_TARGET=generic"
238238
else
239239
BUILD_ARGS=""
@@ -258,7 +258,7 @@ jobs:
258258
create-dependency-manifest:
259259
if: ( !failure() && !cancelled() && inputs.publish_dependency )
260260
needs: [prepare, publish-dependency-image]
261-
runs-on: ubuntu-latest
261+
runs-on: ubuntu-24.04
262262
environment: release
263263
permissions:
264264
packages: write
@@ -292,36 +292,38 @@ jobs:
292292
# Create manifest for the versioned tag
293293
MANIFEST_TAG="${ORG_NAME}/${IMAGE_NAME}:${OS}-${VERSION}${TAG_SUFFIX}"
294294
AMD64_TAG="${ORG_NAME}/${IMAGE_NAME}:${OS}-${VERSION}-amd64${TAG_SUFFIX}"
295+
ARM64_GENERIC_TAG="${ORG_NAME}/${IMAGE_NAME}:${OS}-${VERSION}-arm64-generic${TAG_SUFFIX}"
295296
ARM64_TAG="${ORG_NAME}/${IMAGE_NAME}:${OS}-${VERSION}-arm64${TAG_SUFFIX}"
296297
297298
echo "Creating manifest: ${MANIFEST_TAG}"
298-
docker manifest create ${MANIFEST_TAG} ${AMD64_TAG} ${ARM64_TAG}
299+
docker manifest create ${MANIFEST_TAG} ${AMD64_TAG} ${ARM64_GENERIC_TAG} ${ARM64_TAG}
299300
docker manifest push ${MANIFEST_TAG}
300301
301302
# Create latest manifest if requested
302303
if [[ "${{ inputs.tag_latest }}" == "true" ]]; then
303304
# Create OS-specific latest manifest
304305
LATEST_MANIFEST="${ORG_NAME}/${IMAGE_NAME}:${OS}-latest"
305306
LATEST_AMD64="${ORG_NAME}/${IMAGE_NAME}:${OS}-amd64-latest"
307+
LATEST_ARM64_GENERIC="${ORG_NAME}/${IMAGE_NAME}:${OS}-arm64-generic-latest"
306308
LATEST_ARM64="${ORG_NAME}/${IMAGE_NAME}:${OS}-arm64-latest"
307309
308-
echo "Creating OS-specific latest manifest: ${LATEST_MANIFEST}"
309-
docker manifest create ${LATEST_MANIFEST} ${LATEST_AMD64} ${LATEST_ARM64}
310-
docker manifest push ${LATEST_MANIFEST}
311-
312310
# If OS is centos, also tag as latest (without OS prefix)
313311
if [[ "${OS}" == "centos" ]]; then
314312
GLOBAL_LATEST="${ORG_NAME}/${IMAGE_NAME}:latest"
315313
echo "Creating global latest manifest: ${GLOBAL_LATEST}"
316-
docker manifest create ${GLOBAL_LATEST} ${LATEST_AMD64} ${LATEST_ARM64}
314+
docker manifest create ${GLOBAL_LATEST} ${LATEST_AMD64} ${LATEST_ARM64_GENERIC} ${LATEST_ARM64}
317315
docker manifest push ${GLOBAL_LATEST}
316+
else
317+
echo "Creating OS-specific latest manifest: ${LATEST_MANIFEST}"
318+
docker manifest create ${LATEST_MANIFEST} ${LATEST_AMD64} ${LATEST_ARM64_GENERIC} ${LATEST_ARM64}
319+
docker manifest push ${LATEST_MANIFEST}
318320
fi
319321
fi
320322
321323
publish-presto-image:
322324
if: (!failure() && !cancelled() && inputs.publish_presto)
323325
needs: prepare
324-
runs-on: ubuntu-latest
326+
runs-on: ubuntu-24.04
325327
environment: release
326328
permissions:
327329
packages: write
@@ -427,9 +429,9 @@ jobs:
427429
needs: [prepare, publish-dependency-image]
428430
strategy:
429431
matrix:
430-
arch: [amd64, arm64]
432+
arch: [amd64, arm64-generic, arm64]
431433
fail-fast: false
432-
runs-on: ${{ matrix.arch == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }}
434+
runs-on: ${{ matrix.arch == 'amd64' && 'ubuntu-24.04' || 'ubuntu-24.04-arm' }}
433435
environment: release
434436
timeout-minutes: 150
435437
permissions:
@@ -502,12 +504,16 @@ jobs:
502504
fi
503505
else
504506
# Use the latest dependency image from dockerhub
505-
DEPENDENCY_IMAGE="${{ env.ORG_NAME }}/presto-native-dependency:${{ inputs.os }}-${{ matrix.arch }}-latest"
507+
if [[ "${OS}" == "centos" ]]; then
508+
DEPENDENCY_IMAGE="${{ env.ORG_NAME }}/presto-native-dependency:${{ matrix.arch }}-latest"
509+
else
510+
DEPENDENCY_IMAGE="${{ env.ORG_NAME }}/presto-native-dependency:${{ inputs.os }}-${{ matrix.arch }}-latest"
511+
fi
506512
fi
507513
echo "DEPENDENCY_IMAGE=${DEPENDENCY_IMAGE}" >> $GITHUB_ENV
508514
509515
if [[ "${{ inputs.os }}" == "ubuntu" ]]; then
510-
LOCAL_IMAGE_TAG="presto/prestissimo-dependency:ubuntu-22.04"
516+
LOCAL_IMAGE_TAG="presto/prestissimo-dependency:ubuntu-24.04"
511517
else
512518
LOCAL_IMAGE_TAG="presto/prestissimo-dependency:centos9"
513519
fi
@@ -530,7 +536,7 @@ jobs:
530536
-DPRESTO_ENABLE_SPATIAL=ON \
531537
-DPRESTO_ENABLE_TESTING=OFF \
532538
-DPRESTO_ENABLE_S3=ON"
533-
if [[ "${{ matrix.arch }}" == "arm64" ]]; then
539+
if [[ "${{ matrix.arch }}" == "arm64-generic" ]]; then
534540
BUILD_ARGS="--build-arg ARM_BUILD_TARGET=generic"
535541
else
536542
BUILD_ARGS=""
@@ -564,7 +570,7 @@ jobs:
564570
create-prestissimo-manifest:
565571
if: (!failure() && !cancelled() && inputs.publish_prestissimo)
566572
needs: [prepare, publish-prestissimo-image]
567-
runs-on: ubuntu-latest
573+
runs-on: ubuntu-24.04
568574
environment: release
569575
permissions:
570576
packages: write
@@ -598,28 +604,30 @@ jobs:
598604
# Create manifest for the versioned tag
599605
MANIFEST_TAG="${ORG_NAME}/${IMAGE_NAME}:${OS}-${VERSION}${TAG_SUFFIX}"
600606
AMD64_TAG="${ORG_NAME}/${IMAGE_NAME}:${OS}-${VERSION}-amd64${TAG_SUFFIX}"
607+
ARM64_GENERIC_TAG="${ORG_NAME}/${IMAGE_NAME}:${OS}-${VERSION}-arm64-generic${TAG_SUFFIX}"
601608
ARM64_TAG="${ORG_NAME}/${IMAGE_NAME}:${OS}-${VERSION}-arm64${TAG_SUFFIX}"
602609
603610
echo "Creating manifest: ${MANIFEST_TAG}"
604-
docker manifest create ${MANIFEST_TAG} ${AMD64_TAG} ${ARM64_TAG}
611+
docker manifest create ${MANIFEST_TAG} ${AMD64_TAG} ${ARM64_GENERIC_TAG} ${ARM64_TAG}
605612
docker manifest push ${MANIFEST_TAG}
606613
607614
# Create latest manifest if requested
608615
if [[ "${{ inputs.tag_latest }}" == "true" ]]; then
609616
# Create OS-specific latest manifest
610617
LATEST_MANIFEST="${ORG_NAME}/${IMAGE_NAME}:${OS}-latest"
611618
LATEST_AMD64="${ORG_NAME}/${IMAGE_NAME}:${OS}-amd64-latest"
619+
LATEST_ARM64_GENERIC="${ORG_NAME}/${IMAGE_NAME}:${OS}-arm64-generic-latest"
612620
LATEST_ARM64="${ORG_NAME}/${IMAGE_NAME}:${OS}-arm64-latest"
613621
614-
echo "Creating OS-specific latest manifest: ${LATEST_MANIFEST}"
615-
docker manifest create ${LATEST_MANIFEST} ${LATEST_AMD64} ${LATEST_ARM64}
616-
docker manifest push ${LATEST_MANIFEST}
617-
618622
# If OS is centos, also tag as latest (without OS prefix)
619623
if [[ "${OS}" == "centos" ]]; then
620624
GLOBAL_LATEST="${ORG_NAME}/${IMAGE_NAME}:latest"
621625
echo "Creating global latest manifest: ${GLOBAL_LATEST}"
622-
docker manifest create ${GLOBAL_LATEST} ${LATEST_AMD64} ${LATEST_ARM64}
626+
docker manifest create ${GLOBAL_LATEST} ${LATEST_AMD64} ${LATEST_ARM64_GENERIC} ${LATEST_ARM64}
623627
docker manifest push ${GLOBAL_LATEST}
628+
else
629+
echo "Creating OS-specific latest manifest: ${LATEST_MANIFEST}"
630+
docker manifest create ${LATEST_MANIFEST} ${LATEST_AMD64} ${LATEST_ARM64_GENERIC} ${LATEST_ARM64}
631+
docker manifest push ${LATEST_MANIFEST}
624632
fi
625633
fi

0 commit comments

Comments
 (0)