fix(ci): use cargo-zigbuild to lower Linux glibc requirement to 2.28 (#556)
Replace `cargo build` with `cargo zigbuild` for Linux release binaries, targeting `x86_64-unknown-linux-gnu.2.28` and `aarch64-unknown-linux-gnu.2.28` so prebuilt binaries run on distributions with glibc ≥ 2.28 (RHEL 8+, CentOS 8+, TencentOS 3, Debian 10+, Ubuntu 20.04+) instead of requiring glibc ≥ 2.39. Fixes #555. Signed-off-by: staryxchen <staryxchen@tencent.com>
This commit is contained in:
@@ -58,10 +58,12 @@ jobs:
|
||||
# --- deepseek (cli) ---
|
||||
- os: ubuntu-latest
|
||||
target: x86_64-unknown-linux-gnu
|
||||
target_zig: x86_64-unknown-linux-gnu.2.28
|
||||
binary: deepseek
|
||||
artifact_name: deepseek-linux-x64
|
||||
- os: ubuntu-24.04-arm
|
||||
target: aarch64-unknown-linux-gnu
|
||||
target_zig: aarch64-unknown-linux-gnu.2.28
|
||||
binary: deepseek
|
||||
artifact_name: deepseek-linux-arm64
|
||||
- os: macos-latest
|
||||
@@ -79,10 +81,12 @@ jobs:
|
||||
# --- deepseek-tui (TUI) ---
|
||||
- os: ubuntu-latest
|
||||
target: x86_64-unknown-linux-gnu
|
||||
target_zig: x86_64-unknown-linux-gnu.2.28
|
||||
binary: deepseek-tui
|
||||
artifact_name: deepseek-tui-linux-x64
|
||||
- os: ubuntu-24.04-arm
|
||||
target: aarch64-unknown-linux-gnu
|
||||
target_zig: aarch64-unknown-linux-gnu.2.28
|
||||
binary: deepseek-tui
|
||||
artifact_name: deepseek-tui-linux-arm64
|
||||
- os: macos-latest
|
||||
@@ -103,14 +107,31 @@ jobs:
|
||||
- uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
targets: ${{ matrix.target }}
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
- name: Install Linux system dependencies
|
||||
if: runner.os == 'Linux'
|
||||
run: sudo apt-get update && sudo apt-get install -y libdbus-1-dev pkg-config
|
||||
- run: cargo build --release --locked --target ${{ matrix.target }}
|
||||
- name: Install zig
|
||||
if: runner.os == 'Linux'
|
||||
uses: goto-bus-stop/setup-zig@v2
|
||||
with:
|
||||
version: '0.13.0'
|
||||
- name: Install cargo-zigbuild
|
||||
if: runner.os == 'Linux'
|
||||
run: cargo install cargo-zigbuild --locked
|
||||
- name: Build
|
||||
shell: bash
|
||||
run: |
|
||||
if [ -n "${{ matrix.target_zig }}" ]; then
|
||||
cargo zigbuild --release --locked --target ${{ matrix.target_zig }}
|
||||
else
|
||||
cargo build --release --locked --target ${{ matrix.target }}
|
||||
fi
|
||||
- name: Rename binary
|
||||
shell: bash
|
||||
run: |
|
||||
cp target/${{ matrix.target }}/release/${{ matrix.binary }} ${{ matrix.artifact_name }}
|
||||
TARGET_DIR="${{ matrix.target_zig || matrix.target }}"
|
||||
cp "target/${TARGET_DIR}/release/${{ matrix.binary }}" ${{ matrix.artifact_name }}
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ matrix.artifact_name }}
|
||||
|
||||
Reference in New Issue
Block a user