Skip to content

ci: also build and test on arm64 - #41

Merged
zirui-song-18 merged 1 commit into
opensearch-project:mainfrom
chishui:ci-container-platform-matrix
Sep 2, 2026
Merged

zirui-song-18 merged 1 commit into
opensearch-project:mainfrom
chishui:ci-container-platform-matrix

Conversation

@chishui

@chishui chishui commented Sep 2, 2026 •

Copy link
Copy Markdown
Collaborator

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-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. Nothing about the container changes — no new workflow input, no second image-tag job. get-ci-image-tag.yml has no architecture input at all (its knobs are product, platform, type, build_ref, version), and none is needed.

The single almalinux8 container 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 sve on the arm64 runner, so the SVE kernels get compiled and their tests executed for the first time in CI. Confirmed on this branch:

Leg SIMD level selected Result
Linux (x64) avx2 608/608 passing, generic + SIMD builds
Linux (arm64) sve 608/608 passing, generic + SIMD builds

This 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 ubuntu2404 ci-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:

  • The published ubuntu2404 ci-runner image has no cmake, even though the Dockerfile on opensearch-build main pip-installs it. get-ci-images.sh resolves to a floating tag — its grep -Eo '.*v[0-9]' truncates the minor version, so the workflow gets ci-runner-<platform>-opensearch-build-v1 and the published image can lag the Dockerfile. Both ubuntu2404 legs failed with cmake: command not found.
  • The remaining opensearch/build platforms cannot compile this package at all: it requires C++20 (CMAKE_CXX_STANDARD 20) and uses <ranges> at 23 sites and <span> at 15, while rockylinux8 (gcc 8.5), centos7 (devtoolset-9) and ubuntu2004 (gcc 9.4) all predate those headers in libstdc++.

Check List

  • New functionality includes testing — this change is test coverage; both legs verified green on this branch.
  • New functionality has been documented.
  • Commits are signed per the DCO using --signoff.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

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
chishui force-pushed the ci-container-platform-matrix branch from 51a409c to 721bbce Compare September 2, 2026 03:00
@chishui chishui changed the title ci: build and test on almalinux8 and ubuntu2404, x64 and arm64 ci: also build and test on arm64 Sep 2, 2026
@chishui
chishui marked this pull request as ready for review September 2, 2026 03:09
@zirui-song-18
zirui-song-18 merged commit 9409b90 into opensearch-project:main Sep 2, 2026
10 checks passed
@chishui
chishui deleted the ci-container-platform-matrix branch September 2, 2026 03:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants