From 57295a69fad0df171b5d8c682f7cad1b30db2909 Mon Sep 17 00:00:00 2001 From: hustcer Date: Tue, 3 Sep 2024 22:50:45 +0800 Subject: [PATCH] feat: Add aarch64-unknown-linux-musl build target --- .github/workflows/release-pkg.nu | 18 +++++++- .github/workflows/release-test.yml | 73 ++++++++++++++++-------------- 2 files changed, 55 insertions(+), 36 deletions(-) diff --git a/.github/workflows/release-pkg.nu b/.github/workflows/release-pkg.nu index 562f42b4a..40d34160b 100755 --- a/.github/workflows/release-pkg.nu +++ b/.github/workflows/release-pkg.nu @@ -84,6 +84,22 @@ if $os in ['macos-latest'] or $USE_UBUNTU { $env.CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER = 'arm-linux-gnueabihf-gcc' cargo-build-nu } + # 'aarch64-unknown-linux-musl' => { + # sudo apt-get install musl-tools musl-dev libc6-arm64-cross libc6-dev-arm64-cross gcc-aarch64-linux-gnu -y + # $env.CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER = 'aarch64-linux-gnu-gcc' + # cargo-build-nu + # } + 'aarch64-unknown-linux-musl' => { + sudo apt-get install musl-tools musl-dev libc6-arm64-cross libc6-dev-arm64-cross -y + let pwd = ($env.PWD) + cd ~ + curl -LO https://musl.cc/aarch64-linux-musl-cross.tgz + tar -xf aarch64-linux-musl-cross.tgz + cd $pwd + $env.PATH = ($env.PATH | split row (char esep) | prepend $'($env.HOME)/aarch64-linux-musl-cross/bin') + $env.CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER = 'aarch64-linux-musl-gcc' + cargo-build-nu + } _ => { # musl-tools to fix 'Failed to find tool. Is `musl-gcc` installed?' # Actually just for x86_64-unknown-linux-musl target @@ -203,7 +219,7 @@ def 'cargo-build-nu' [] { if $os == 'windows-latest' { cargo build --release --all --target $target } else { - cargo build --release --all --target $target --features=static-link-openssl + RUSTFLAGS="-Ctarget-feature=+crt-static" cargo build --release --all --target $target --features=static-link-openssl } } diff --git a/.github/workflows/release-test.yml b/.github/workflows/release-test.yml index 3866ab27e..04969ce7d 100644 --- a/.github/workflows/release-test.yml +++ b/.github/workflows/release-test.yml @@ -23,43 +23,46 @@ jobs: fail-fast: false matrix: target: - - aarch64-apple-darwin - - x86_64-apple-darwin - - x86_64-pc-windows-msvc - - aarch64-pc-windows-msvc - - x86_64-unknown-linux-gnu - - x86_64-unknown-linux-musl - - aarch64-unknown-linux-gnu - - armv7-unknown-linux-gnueabihf - - riscv64gc-unknown-linux-gnu + # - aarch64-apple-darwin + # - x86_64-apple-darwin + # - x86_64-pc-windows-msvc + # - aarch64-pc-windows-msvc + # - x86_64-unknown-linux-gnu + # - x86_64-unknown-linux-musl + # - aarch64-unknown-linux-gnu + - aarch64-unknown-linux-musl + # - armv7-unknown-linux-gnueabihf + # - riscv64gc-unknown-linux-gnu extra: ['bin'] include: - - target: aarch64-apple-darwin - os: macos-latest - - target: x86_64-apple-darwin - os: macos-latest - - target: x86_64-pc-windows-msvc - extra: 'bin' - os: windows-latest - - target: x86_64-pc-windows-msvc - extra: msi - os: windows-latest - - target: aarch64-pc-windows-msvc - extra: 'bin' - os: windows-latest - - target: aarch64-pc-windows-msvc - extra: msi - os: windows-latest - - target: x86_64-unknown-linux-gnu - os: ubuntu-22.04 - - target: x86_64-unknown-linux-musl - os: ubuntu-22.04 - - target: aarch64-unknown-linux-gnu - os: ubuntu-22.04 - - target: armv7-unknown-linux-gnueabihf - os: ubuntu-22.04 - - target: riscv64gc-unknown-linux-gnu - os: ubuntu-latest + # - target: aarch64-apple-darwin + # os: macos-latest + # - target: x86_64-apple-darwin + # os: macos-latest + # - target: x86_64-pc-windows-msvc + # extra: 'bin' + # os: windows-latest + # - target: x86_64-pc-windows-msvc + # extra: msi + # os: windows-latest + # - target: aarch64-pc-windows-msvc + # extra: 'bin' + # os: windows-latest + # - target: aarch64-pc-windows-msvc + # extra: msi + # os: windows-latest + # - target: x86_64-unknown-linux-gnu + # os: ubuntu-22.04 + # - target: x86_64-unknown-linux-musl + # os: ubuntu-22.04 + # - target: aarch64-unknown-linux-gnu + # os: ubuntu-22.04 + - target: aarch64-unknown-linux-musl + os: ubuntu-22.04 + # - target: armv7-unknown-linux-gnueabihf + # os: ubuntu-22.04 + # - target: riscv64gc-unknown-linux-gnu + # os: ubuntu-latest runs-on: ${{matrix.os}}