9393
9494jobs :
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