From a3bd2ca1a286f856a53370250e2d0c983f07ea79 Mon Sep 17 00:00:00 2001 From: Melissa Kilby Date: Fri, 31 Oct 2025 09:53:09 -0700 Subject: [PATCH 1/3] update: add linux_fedora_build_cpp CI - CPP build test only - x86-64 Signed-off-by: Melissa Kilby --- .../setup+build-cpp-linux-fedora-container.sh | 27 +++++++++++++++++++ .github/workflows/nightly.yml | 12 +++++++++ .github/workflows/pull_request.yml | 12 +++++++++ 3 files changed, 51 insertions(+) create mode 100755 .github/scripts/setup+build-cpp-linux-fedora-container.sh diff --git a/.github/scripts/setup+build-cpp-linux-fedora-container.sh b/.github/scripts/setup+build-cpp-linux-fedora-container.sh new file mode 100755 index 0000000000..e93757d475 --- /dev/null +++ b/.github/scripts/setup+build-cpp-linux-fedora-container.sh @@ -0,0 +1,27 @@ +#!/bin/bash +set -ex + +# [Setup] Install dependencies inside the container. +dnf update -y +dnf install -y \ + blas-devel \ + lapack-devel \ + openblas-devel \ + make \ + cmake \ + clang \ + git +dnf clean all + +# [C++] CI Build Sanity Check: Verifies code compilation, not for release. +export CMAKE_ARGS="-DCMAKE_COMPILE_WARNING_AS_ERROR=ON" +export DEBUG=1 +export CMAKE_C_COMPILER=/usr/bin/clang +export CMAKE_CXX_COMPILER=/usr/bin/clang++ + +mkdir -p build +pushd build +cmake .. -DMLX_BUILD_METAL=OFF -DCMAKE_BUILD_TYPE=DEBUG +make -j $(nproc) +./tests/tests +popd diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 00c50e200d..d77e6f05b5 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -91,3 +91,15 @@ jobs: path: wheelhouse/mlx_cuda-*.whl retention-days: 7 + linux_fedora_build_cpp: + runs-on: ubuntu-22.04 + container: + image: fedora:42 + steps: + - name: Checkout code + uses: actions/checkout@v5 + + - name: CPP Build Test - No Release + run: | + bash ./.github/scripts/setup+build-cpp-linux-fedora-container.sh + diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 12c38cfc8c..6839ba0ce2 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -44,3 +44,15 @@ jobs: steps: - uses: actions/checkout@v5 - uses: ./.github/actions/build-docs + + linux_fedora_build_cpp: + runs-on: ubuntu-22.04 + container: + image: fedora:42 + steps: + - name: Checkout code + uses: actions/checkout@v5 + + - name: CPP Build Test - No Release + run: | + bash ./.github/scripts/setup+build-cpp-linux-fedora-container.sh From cf912262b002330b50d81138cc06816dbfb0732a Mon Sep 17 00:00:00 2001 From: Melissa Kilby Date: Fri, 31 Oct 2025 10:03:42 -0700 Subject: [PATCH 2/3] update: add linux_fedora_build_cpp_aarch64 CI - CPP build test only - arm64 Co-authored-by: Mike Drob Signed-off-by: Melissa Kilby --- .github/workflows/nightly.yml | 11 +++++++++++ .github/workflows/pull_request.yml | 12 ++++++++++++ 2 files changed, 23 insertions(+) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index d77e6f05b5..460cd34c3f 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -103,3 +103,14 @@ jobs: run: | bash ./.github/scripts/setup+build-cpp-linux-fedora-container.sh + linux_fedora_build_cpp_aarch64: + runs-on: ubuntu-22.04-arm + container: + image: fedora:42 + steps: + - name: Checkout code + uses: actions/checkout@v5 + + - name: CPP Build Test - No Release + run: | + bash ./.github/scripts/setup+build-cpp-linux-fedora-container.sh diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 6839ba0ce2..d5a263954b 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -56,3 +56,15 @@ jobs: - name: CPP Build Test - No Release run: | bash ./.github/scripts/setup+build-cpp-linux-fedora-container.sh + + linux_fedora_build_cpp_aarch64: + runs-on: ubuntu-22.04-arm + container: + image: fedora:42 + steps: + - name: Checkout code + uses: actions/checkout@v5 + + - name: CPP Build Test - No Release + run: | + bash ./.github/scripts/setup+build-cpp-linux-fedora-container.sh From 51b81f83a001a637d34fca8df8adf022221c3756 Mon Sep 17 00:00:00 2001 From: Melissa Kilby Date: Fri, 31 Oct 2025 10:46:02 -0700 Subject: [PATCH 3/3] update: convert linux_fedora_build_cpp to matrix.arch loop Co-authored-by: Mike Drob Signed-off-by: Melissa Kilby --- .github/workflows/nightly.yml | 24 +++++++++++------------- .github/workflows/pull_request.yml | 24 +++++++++++------------- 2 files changed, 22 insertions(+), 26 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 460cd34c3f..2cfe78e754 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -92,19 +92,17 @@ jobs: retention-days: 7 linux_fedora_build_cpp: - runs-on: ubuntu-22.04 - container: - image: fedora:42 - steps: - - name: Checkout code - uses: actions/checkout@v5 - - - name: CPP Build Test - No Release - run: | - bash ./.github/scripts/setup+build-cpp-linux-fedora-container.sh + name: Linux Fedora CPP Build (${{ matrix.arch }}) + strategy: + fail-fast: false + matrix: + include: + - host: ubuntu-22.04 + arch: x86_64 + - host: ubuntu-22.04-arm + arch: aarch64 - linux_fedora_build_cpp_aarch64: - runs-on: ubuntu-22.04-arm + runs-on: ${{ matrix.host }} container: image: fedora:42 steps: @@ -113,4 +111,4 @@ jobs: - name: CPP Build Test - No Release run: | - bash ./.github/scripts/setup+build-cpp-linux-fedora-container.sh + bash ./.github/scripts/setup+build-cpp-linux-fedora-container.sh diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index d5a263954b..d86ed307e0 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -46,19 +46,17 @@ jobs: - uses: ./.github/actions/build-docs linux_fedora_build_cpp: - runs-on: ubuntu-22.04 - container: - image: fedora:42 - steps: - - name: Checkout code - uses: actions/checkout@v5 - - - name: CPP Build Test - No Release - run: | - bash ./.github/scripts/setup+build-cpp-linux-fedora-container.sh + name: Linux Fedora CPP Build (${{ matrix.arch }}) + strategy: + fail-fast: false + matrix: + include: + - host: ubuntu-22.04 + arch: x86_64 + - host: ubuntu-22.04-arm + arch: aarch64 - linux_fedora_build_cpp_aarch64: - runs-on: ubuntu-22.04-arm + runs-on: ${{ matrix.host }} container: image: fedora:42 steps: @@ -67,4 +65,4 @@ jobs: - name: CPP Build Test - No Release run: | - bash ./.github/scripts/setup+build-cpp-linux-fedora-container.sh + bash ./.github/scripts/setup+build-cpp-linux-fedora-container.sh