Repository navigation
ci: also build and test on arm64 - #41
Merged
zirui-song-18 merged 1 commit intoSep 2, 2026
Merged
Conversation
The Linux job has only ever built on x64. ci-image-version-linux is a multi-arch manifest, so the tag get-ci-image-tag.yml already returns resolves to the arm64 image on an arm64 runner -- arm64 coverage needs a runner, not a different image or a new workflow input. Adds an arch matrix over ubuntu-latest and ubuntu-24.04-arm, keeping the single almalinux8 container platform that k-NN and the OpenSearch distribution build both use. This is real new coverage rather than a second run of the same code: the existing SIMD detection step picks sve on the arm64 runner, so the SVE kernels are compiled and their tests run for the first time. Verified on this branch -- x64 selected avx2 and arm64 selected sve, 608/608 tests passing on the generic and SIMD builds of both. Signed-off-by: Liyun Xiu <xiliyun@amazon.com>
chishui
force-pushed
the
ci-container-platform-matrix
branch
from
September 2, 2026 03:00
51a409c to
721bbce
Compare
chishui
marked this pull request as ready for review
September 2, 2026 03:09
chishui
requested review from
model-collapse,
yuye-aws and
zirui-song-18
as code owners
September 2, 2026 03:09
zirui-song-18
approved these changes
Sep 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
The Linux CI job has only ever built on x64. This adds an architecture matrix so it also builds and tests on arm64.
ci-image-version-linuxis a multi-arch manifest, so the tagget-ci-image-tag.ymlalready returns resolves to the arm64 image on an arm64 runner. Nothing about the container changes — no new workflow input, no second image-tag job.get-ci-image-tag.ymlhas no architecture input at all (its knobs areproduct,platform,type,build_ref,version), and none is needed.The single
almalinux8container platform is unchanged, matching what k-NN does and what the OpenSearch distribution is built on.Why this is real coverage, not a second run of the same code
The existing SIMD detection step selects
sveon the arm64 runner, so the SVE kernels get compiled and their tests executed for the first time in CI. Confirmed on this branch:avx2sveThis complements #40, which added the NEON and SVE kernel equivalence tests — those SVE assertions now actually run on SVE hardware.
Scope
An earlier revision of this PR also built on the
ubuntu2404ci-runner platform. That is dropped: k-NN and the distribution build both use one Linux container platform, and multi-distro coverage for a library is not what the other ci-runner platforms exist for.Worth recording what that experiment turned up, since it is a live hazard for anyone adding a platform here:
ubuntu2404ci-runner image has nocmake, even though the Dockerfile onopensearch-buildmainpip-installs it.get-ci-images.shresolves to a floating tag — itsgrep -Eo '.*v[0-9]'truncates the minor version, so the workflow getsci-runner-<platform>-opensearch-build-v1and the published image can lag the Dockerfile. Bothubuntu2404legs failed withcmake: command not found.opensearch/buildplatforms cannot compile this package at all: it requires C++20 (CMAKE_CXX_STANDARD 20) and uses<ranges>at 23 sites and<span>at 15, whilerockylinux8(gcc 8.5),centos7(devtoolset-9) andubuntu2004(gcc 9.4) all predate those headers in libstdc++.Check List
--signoff.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.