Skip to content
Merged

Dev #159

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 100 additions & 11 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -130,28 +130,28 @@ jobs:
fail-fast: false
matrix:
platform:
# x86_64
# ── x86_64 ──
- release_for: linux_x86_64_musl
target: x86_64-unknown-linux-musl
binary_name: nodeget-agent-linux-x86_64-musl
- release_for: linux_x86_64_gnu
target: x86_64-unknown-linux-gnu
binary_name: nodeget-agent-linux-x86_64-gnu
# i686
# ── i686 ──
- release_for: linux_i686_gnu
target: i686-unknown-linux-gnu
binary_name: nodeget-agent-linux-i686-gnu
- release_for: linux_i686_musl
target: i686-unknown-linux-musl
binary_name: nodeget-agent-linux-i686-musl
# aarch64
# ── aarch64 ──
- release_for: linux_aarch64_gnu
target: aarch64-unknown-linux-gnu
binary_name: nodeget-agent-linux-aarch64-gnu
- release_for: linux_aarch64_musl
target: aarch64-unknown-linux-musl
binary_name: nodeget-agent-linux-aarch64-musl
# arm (generic)
# ── arm (generic) ──
- release_for: linux_arm_gnueabi
target: arm-unknown-linux-gnueabi
binary_name: nodeget-agent-linux-arm-gnueabi
Expand All @@ -164,7 +164,12 @@ jobs:
- release_for: linux_arm_musleabihf
target: arm-unknown-linux-musleabihf
binary_name: nodeget-agent-linux-arm-musleabihf
# armv7
# Android:NDK 缺少 libunwind
- release_for: linux_arm_androideabi
target: arm-linux-androideabi
binary_name: nodeget-agent-linux-arm-androideabi
build_std: true
# ── armv7 ──
- release_for: linux_armv7_gnueabi
target: armv7-unknown-linux-gnueabi
binary_name: nodeget-agent-linux-armv7-gnueabi
Expand All @@ -177,16 +182,74 @@ jobs:
- release_for: linux_armv7_musleabihf
target: armv7-unknown-linux-musleabihf
binary_name: nodeget-agent-linux-armv7-musleabihf
# thumbv7neon (ARMv7 with NEON SIMD)
# Android:NDK 缺少 libunwind
- release_for: linux_armv7_androideabi
target: armv7-linux-androideabi
binary_name: nodeget-agent-linux-armv7-androideabi
build_std: true
# ── armv5te (tier 3):无预编译 std,必须 build-std ──
- release_for: linux_armv5te_gnueabi
target: armv5te-unknown-linux-gnueabi
binary_name: nodeget-agent-linux-armv5te-gnueabi
build_std: true
- release_for: linux_armv5te_musleabi
target: armv5te-unknown-linux-musleabi
binary_name: nodeget-agent-linux-armv5te-musleabi
build_std: true
# ── thumb ──
- release_for: linux_thumbv7neon_gnueabihf
target: thumbv7neon-unknown-linux-gnueabihf
binary_name: nodeget-agent-linux-thumbv7neon-gnueabihf
# riscv64
- release_for: linux_riscv64gc_gnu
target: riscv64gc-unknown-linux-gnu
binary_name: nodeget-agent-linux-riscv64gc-gnu
# Android:stable 无预编译 std,必须 nightly + build-std
- release_for: linux_thumbv7neon_androideabi
target: thumbv7neon-linux-androideabi
binary_name: nodeget-agent-linux-thumbv7neon-androideabi
build_std: true
# mips (tier 3):无预编译 std,必须 build-std
- release_for: linux_mips_gnu
target: mips-unknown-linux-gnu
binary_name: nodeget-agent-linux-mips-gnu
build_std: true
- release_for: linux_mips_musl
target: mips-unknown-linux-musl
binary_name: nodeget-agent-linux-mips-musl
build_std: true
# mipsel (tier 3)
- release_for: linux_mipsel_gnu
target: mipsel-unknown-linux-gnu
binary_name: nodeget-agent-linux-mipsel-gnu
build_std: true
- release_for: linux_mipsel_musl
target: mipsel-unknown-linux-musl
binary_name: nodeget-agent-linux-mipsel-musl
build_std: true
# mips64 (tier 3)
- release_for: linux_mips64_gnu
target: mips64-unknown-linux-gnuabi64
binary_name: nodeget-agent-linux-mips64-gnu
build_std: true
no_upx: true
- release_for: linux_mips64_musl
target: mips64-unknown-linux-muslabi64
binary_name: nodeget-agent-linux-mips64-musl
build_std: true
no_upx: true
# mips64el (tier 3)
- release_for: linux_mips64el_gnu
target: mips64el-unknown-linux-gnuabi64
binary_name: nodeget-agent-linux-mips64el-gnu
build_std: true
no_upx: true
- release_for: linux_mips64el_musl
target: mips64el-unknown-linux-muslabi64
binary_name: nodeget-agent-linux-mips64el-musl
build_std: true
no_upx: true
# powerpc
- release_for: linux_powerpc_gnu
target: powerpc-unknown-linux-gnu
binary_name: nodeget-agent-linux-powerpc-gnu
build_std: true
- release_for: linux_powerpc64_gnu
target: powerpc64-unknown-linux-gnu
binary_name: nodeget-agent-linux-powerpc64-gnu
Expand All @@ -200,6 +263,11 @@ jobs:
target: s390x-unknown-linux-gnu
binary_name: nodeget-agent-linux-s390x-gnu
no_upx: true
# riscv64
- release_for: linux_riscv64gc_gnu
target: riscv64gc-unknown-linux-gnu
binary_name: nodeget-agent-linux-riscv64gc-gnu
no_upx: true
steps:
- name: Checkout
uses: actions/checkout@v6
Expand All @@ -222,11 +290,32 @@ jobs:
| tar -xz -C "${HOME}/.local/bin"
echo "${HOME}/.local/bin" >> "${GITHUB_PATH}"

- name: Build binary
- name: Install nightly toolchain for build-std
if: ${{ matrix.platform.build_std }}
run: rustup install nightly && rustup component add rust-src --toolchain nightly

# 清除 CI 缓存中残留的预编译 target std,防止与 -Z build-std 冲突
# 产生 "duplicate lang item in crate 'core'" 错误
- name: Clean cached target std for build-std
if: ${{ matrix.platform.build_std }}
run: rustup target remove --toolchain nightly ${{ matrix.platform.target }} 2>/dev/null || true

- name: Build binary (stable)
if: ${{ !matrix.platform.build_std }}
run: cross build --package nodeget-agent --target ${{ matrix.platform.target }} --profile minimal --jobs 32
env:
CROSS_NO_WARNINGS: 0

# cross v0.2.5 的 Cross.toml build-std 只支持布尔值(true),
# 不支持字符串 "std,panic_abort",因此 -Z build-std=std,panic_abort
# 必须在命令行显式传递以包含 panic_abort。
# Cross.toml 中的 build-std = true 让 cross 跳过 rustup target add。
- name: Build binary (nightly, build-std)
if: ${{ matrix.platform.build_std }}
run: cross +nightly build --package nodeget-agent --target ${{ matrix.platform.target }} --profile minimal --jobs 32 -Z build-std=std,panic_abort
env:
CROSS_NO_WARNINGS: 0

- name: Compress binary
if: ${{ !matrix.platform.no_upx }}
run: upx -9 ./target/${{ matrix.platform.target }}/minimal/nodeget-agent
Expand Down
Loading
Loading