mirror of
https://github.com/ml-explore/mlx.git
synced 2025-12-09 21:29:02 +08:00
42 lines
1.3 KiB
YAML
42 lines
1.3 KiB
YAML
name: 'Build and Test on Linux'
|
|
|
|
inputs:
|
|
toolkit:
|
|
description: 'The toolkit to build with'
|
|
required: false
|
|
default: 'cpu'
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Install Python package
|
|
id: python_build
|
|
shell: sh
|
|
env:
|
|
DEBUG: 1
|
|
CMAKE_ARGS: >-
|
|
-DCMAKE_COMPILE_WARNING_AS_ERROR=ON
|
|
-DMLX_BUILD_CUDA=${{ startsWith(inputs.toolkit, 'cuda') && 'ON' || 'OFF' }}
|
|
run: |
|
|
if ${{ startsWith(inputs.toolkit, 'cuda') && runner.arch == 'arm64' }} ; then
|
|
# There is no GPU in arm64 runner, use a common arch.
|
|
CMAKE_ARGS="$CMAKE_ARGS -DMLX_CUDA_ARCHITECTURES=90a"
|
|
# Can not build tests when the built executables can not run.
|
|
CMAKE_ARGS="$CMAKE_ARGS -DMLX_BUILD_TESTS=OFF"
|
|
fi
|
|
pip install --no-build-isolation -e ".[dev]" -v
|
|
# Pass the CMAKE_ARGS to following steps.
|
|
echo CMAKE_ARGS="$CMAKE_ARGS" >> $GITHUB_OUTPUT
|
|
|
|
- name: Generate package stubs
|
|
shell: sh
|
|
run: |
|
|
pip install typing_extensions
|
|
python setup.py generate_stubs
|
|
|
|
- name: Build CPP only
|
|
shell: bash
|
|
run: |
|
|
cmake . -B build -DCMAKE_BUILD_TYPE=Debug ${{ steps.python_build.outputs.CMAKE_ARGS }}
|
|
cmake --build build -j $(nproc)
|