From 721bbce790b3888f3d207ffbdf91e256981553ec Mon Sep 17 00:00:00 2001 From: Liyun Xiu Date: Wed, 2 Sep 2026 02:48:49 +0000 Subject: [PATCH] ci: also build and test on arm64 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 --- .github/workflows/CI.yml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index ae92aa0..d77f9e7 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -31,9 +31,19 @@ jobs: product: opensearch Build-nsparse-Linux: - name: Build and Test nsparse on Linux - runs-on: ubuntu-latest + name: Build and Test nsparse on Linux (${{ matrix.arch }}) + runs-on: ${{ matrix.runner }} needs: Get-CI-Image-Tag + strategy: + fail-fast: false + matrix: + include: + - arch: x64 + runner: ubuntu-latest + - arch: arm64 + runner: ubuntu-24.04-arm + # ci-image-version-linux is a multi-arch manifest, so the same tag resolves + # to the arm64 image on an arm64 runner. container: image: ${{ needs.Get-CI-Image-Tag.outputs.ci-image-version-linux }} options: ${{ needs.Get-CI-Image-Tag.outputs.ci-image-start-options }}