From 5870b49eded00b616753963d3f784d31082028ab Mon Sep 17 00:00:00 2001 From: SkyBird233 <52884766+SkyBird233@users.noreply.github.com> Date: Thu, 11 Sep 2025 17:27:40 +0800 Subject: [PATCH] [ruff]: Build loongarch64 binaries in CI --- .github/workflows/build-binaries.yml | 12 ++++++++++-- .github/workflows/publish-pypi.yml | 2 ++ crates/ruff/Cargo.toml | 2 +- crates/ruff/src/main.rs | 3 ++- crates/ruff_benchmark/Cargo.toml | 2 +- crates/ruff_benchmark/benches/formatter.rs | 3 ++- crates/ruff_benchmark/benches/lexer.rs | 3 ++- crates/ruff_benchmark/benches/linter.rs | 6 ++++-- crates/ruff_benchmark/benches/parser.rs | 3 ++- dist-workspace.toml | 1 + 10 files changed, 27 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-binaries.yml b/.github/workflows/build-binaries.yml index 573513079994e..ac07d8befd28c 100644 --- a/.github/workflows/build-binaries.yml +++ b/.github/workflows/build-binaries.yml @@ -294,6 +294,11 @@ jobs: arch: arm - target: riscv64gc-unknown-linux-gnu arch: riscv64 + - target: loongarch64-unknown-linux-gnu + arch: loong64 + # There's currently no loong64 support for Ubuntu so we are using Debian + base_image: --platform=linux/loong64 ghcr.io/loong64/debian:trixie + maturin_docker_options: -e JEMALLOC_SYS_WITH_LG_PAGE=16 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 @@ -318,12 +323,15 @@ jobs: with: arch: ${{ matrix.platform.arch == 'arm' && 'armv6' || matrix.platform.arch }} distro: ${{ matrix.platform.arch == 'arm' && 'bullseye' || 'ubuntu20.04' }} + base_image: ${{ matrix.platform.base_image }} githubToken: ${{ github.token }} install: | apt-get update - apt-get install -y --no-install-recommends python3 python3-pip libatomic1 - pip3 install -U pip + apt-get install -y --no-install-recommends python3 python3-pip python3-venv libatomic1 run: | + python3 -m venv .venv + source .venv/bin/activate + pip3 install -U pip pip3 install ${{ env.PACKAGE_NAME }} --no-index --find-links dist/ --force-reinstall ruff --help - name: "Upload wheels" diff --git a/.github/workflows/publish-pypi.yml b/.github/workflows/publish-pypi.yml index a145f975ede06..f29d719bf6124 100644 --- a/.github/workflows/publish-pypi.yml +++ b/.github/workflows/publish-pypi.yml @@ -28,5 +28,7 @@ jobs: pattern: wheels-* path: wheels merge-multiple: true + - name: Remove wheels unsupported by PyPI + run: rm wheels/*loong* - name: Publish to PyPi run: uv publish -v wheels/* diff --git a/crates/ruff/Cargo.toml b/crates/ruff/Cargo.toml index b990cff2d142c..ad06a560bd4f1 100644 --- a/crates/ruff/Cargo.toml +++ b/crates/ruff/Cargo.toml @@ -85,7 +85,7 @@ dist = true [target.'cfg(target_os = "windows")'.dependencies] mimalloc = { workspace = true } -[target.'cfg(all(not(target_os = "windows"), not(target_os = "openbsd"), not(target_os = "aix"), not(target_os = "android"), any(target_arch = "x86_64", target_arch = "aarch64", target_arch = "powerpc64", target_arch = "riscv64")))'.dependencies] +[target.'cfg(all(not(target_os = "windows"), not(target_os = "openbsd"), not(target_os = "aix"), not(target_os = "android"), any(target_arch = "x86_64", target_arch = "aarch64", target_arch = "powerpc64", target_arch = "riscv64", target_arch = "loongarch64")))'.dependencies] tikv-jemallocator = { workspace = true } [lints] diff --git a/crates/ruff/src/main.rs b/crates/ruff/src/main.rs index 62e4f85b6e4ba..a8e9664ad18ae 100644 --- a/crates/ruff/src/main.rs +++ b/crates/ruff/src/main.rs @@ -20,7 +20,8 @@ static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc; target_arch = "x86_64", target_arch = "aarch64", target_arch = "powerpc64", - target_arch = "riscv64" + target_arch = "riscv64", + target_arch = "loongarch64", ) ))] #[global_allocator] diff --git a/crates/ruff_benchmark/Cargo.toml b/crates/ruff_benchmark/Cargo.toml index 92606c99012cf..a10dbb65fec4b 100644 --- a/crates/ruff_benchmark/Cargo.toml +++ b/crates/ruff_benchmark/Cargo.toml @@ -86,5 +86,5 @@ walltime = ["ruff_db/os", "ty_project", "divan"] [target.'cfg(target_os = "windows")'.dev-dependencies] mimalloc = { workspace = true } -[target.'cfg(all(not(target_os = "windows"), not(target_os = "openbsd"), any(target_arch = "x86_64", target_arch = "aarch64", target_arch = "powerpc64", target_arch = "riscv64")))'.dev-dependencies] +[target.'cfg(all(not(target_os = "windows"), not(target_os = "openbsd"), any(target_arch = "x86_64", target_arch = "aarch64", target_arch = "powerpc64", target_arch = "riscv64", target_arch = "loongarch64")))'.dev-dependencies] tikv-jemallocator = { workspace = true } diff --git a/crates/ruff_benchmark/benches/formatter.rs b/crates/ruff_benchmark/benches/formatter.rs index f2bd54bb44588..a2c56c175ea3f 100644 --- a/crates/ruff_benchmark/benches/formatter.rs +++ b/crates/ruff_benchmark/benches/formatter.rs @@ -22,7 +22,8 @@ static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc; target_arch = "x86_64", target_arch = "aarch64", target_arch = "powerpc64", - target_arch = "riscv64" + target_arch = "riscv64", + target_arch = "loongarch64" ) ))] #[global_allocator] diff --git a/crates/ruff_benchmark/benches/lexer.rs b/crates/ruff_benchmark/benches/lexer.rs index 968ac74b143dd..e337f634438e3 100644 --- a/crates/ruff_benchmark/benches/lexer.rs +++ b/crates/ruff_benchmark/benches/lexer.rs @@ -19,7 +19,8 @@ static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc; target_arch = "x86_64", target_arch = "aarch64", target_arch = "powerpc64", - target_arch = "riscv64" + target_arch = "riscv64", + target_arch = "loongarch64" ) ))] #[global_allocator] diff --git a/crates/ruff_benchmark/benches/linter.rs b/crates/ruff_benchmark/benches/linter.rs index 98ef4083a9fca..4c1eb8b69e6ef 100644 --- a/crates/ruff_benchmark/benches/linter.rs +++ b/crates/ruff_benchmark/benches/linter.rs @@ -27,7 +27,8 @@ static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc; target_arch = "x86_64", target_arch = "aarch64", target_arch = "powerpc64", - target_arch = "riscv64" + target_arch = "riscv64", + target_arch = "loongarch64" ) ))] #[global_allocator] @@ -44,7 +45,8 @@ static GLOBAL: tikv_jemallocator::Jemalloc = tikv_jemallocator::Jemalloc; target_arch = "x86_64", target_arch = "aarch64", target_arch = "powerpc64", - target_arch = "riscv64" + target_arch = "riscv64", + target_arch = "loongarch64" ) ))] #[unsafe(export_name = "_rjem_malloc_conf")] diff --git a/crates/ruff_benchmark/benches/parser.rs b/crates/ruff_benchmark/benches/parser.rs index d5e086eb505cc..d1bbe6fd9f84a 100644 --- a/crates/ruff_benchmark/benches/parser.rs +++ b/crates/ruff_benchmark/benches/parser.rs @@ -21,7 +21,8 @@ static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc; target_arch = "x86_64", target_arch = "aarch64", target_arch = "powerpc64", - target_arch = "riscv64" + target_arch = "riscv64", + target_arch = "loongarch64" ) ))] #[global_allocator] diff --git a/dist-workspace.toml b/dist-workspace.toml index 1f23f1118bb8b..5c4ee12e6e86c 100644 --- a/dist-workspace.toml +++ b/dist-workspace.toml @@ -30,6 +30,7 @@ targets = [ "powerpc64le-unknown-linux-gnu", "riscv64gc-unknown-linux-gnu", "s390x-unknown-linux-gnu", + "loongarch64-unknown-linux-gnu", "x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl", "x86_64-pc-windows-msvc",