mirror of
https://github.com/velopack/velopack.git
synced 2025-10-25 15:19:22 +00:00
Compile linux binaries with musl
This commit is contained in:
62
.github/workflows/build.yml
vendored
62
.github/workflows/build.yml
vendored
@@ -34,7 +34,7 @@ jobs:
|
||||
- name: Update Version
|
||||
shell: pwsh
|
||||
run: ./.github/set-nbgv-version.ps1
|
||||
- name: Build Rust Binaries
|
||||
- name: Build Rust Binaries (x86)
|
||||
run: cargo +nightly build --target i686-win7-windows-msvc -Z build-std="core,alloc,std,panic_abort" --features windows --release -p velopack_bins
|
||||
- name: Upload Rust Build Artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
@@ -84,42 +84,60 @@ jobs:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
key: "rust-build-linux"
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash
|
||||
cargo binstall cross
|
||||
rustup target add aarch64-unknown-linux-gnu
|
||||
sudo apt update
|
||||
sudo apt install -y g++-aarch64-linux-gnu gcc-aarch64-linux-gnu
|
||||
mkdir ./artifacts
|
||||
# rustup target add x86_64-unknown-linux-musl
|
||||
# rustup target add aarch64-unknown-linux-musl
|
||||
# sudo apt install -y g++-aarch64-linux-gnu gcc-aarch64-linux-gnu musl-tools musl:arm64
|
||||
- name: Update Version
|
||||
shell: pwsh
|
||||
run: ./.github/set-nbgv-version.ps1
|
||||
- name: Build Rust (x64)
|
||||
- name: Build Rust Binaries (x64)
|
||||
run: |
|
||||
cargo build --release --target x86_64-unknown-linux-gnu
|
||||
ldd ./target/x86_64-unknown-linux-gnu/release/update || true
|
||||
cp ./target/x86_64-unknown-linux-gnu/release/update ./target/UpdateNix_x64
|
||||
cp ./target/x86_64-unknown-linux-gnu/release/libvelopack_nodeffi.so ./target/velopack_nodeffi_linux_x64_gnu.node
|
||||
cp ./target/x86_64-unknown-linux-gnu/release/libvelopack_libc.so ./target/velopack_libc_linux_x64_gnu.so
|
||||
cp ./target/x86_64-unknown-linux-gnu/release/libvelopack_libc.a ./target/velopack_libc_linux_x64_gnu.a
|
||||
- name: Build Rust (arm64)
|
||||
cargo clean
|
||||
cross build --release --target x86_64-unknown-linux-musl -p velopack_bins
|
||||
ldd ./target/x86_64-unknown-linux-musl/release/update || true
|
||||
cp ./target/x86_64-unknown-linux-musl/release/update ./artifacts/UpdateNix_x64
|
||||
- name: Build Rust Binaries (arm64)
|
||||
run: |
|
||||
cargo build --release --target aarch64-unknown-linux-gnu
|
||||
ldd ./target/aarch64-unknown-linux-gnu/release/update || true
|
||||
cp ./target/aarch64-unknown-linux-gnu/release/update ./target/UpdateNix_arm64
|
||||
cp ./target/aarch64-unknown-linux-gnu/release/libvelopack_nodeffi.so ./target/velopack_nodeffi_linux_arm64_gnu.node
|
||||
cp ./target/aarch64-unknown-linux-gnu/release/libvelopack_libc.so ./target/velopack_libc_linux_arm64_gnu.so
|
||||
cp ./target/aarch64-unknown-linux-gnu/release/libvelopack_libc.a ./target/velopack_libc_linux_arm64_gnu.a
|
||||
cargo clean
|
||||
cross build --release --target aarch64-unknown-linux-musl -p velopack_bins
|
||||
ldd ./target/aarch64-unknown-linux-musl/release/update || true
|
||||
cp ./target/aarch64-unknown-linux-musl/release/update ./artifacts/UpdateNix_arm64
|
||||
- name: Upload Rust Build Artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: rust-ubuntu-latest
|
||||
path: |
|
||||
target/UpdateNix*
|
||||
target/*.so
|
||||
target/*.node
|
||||
target/*.a
|
||||
artifacts/UpdateNix*
|
||||
- name: Build Rust (x64)
|
||||
run: |
|
||||
cargo clean
|
||||
cargo build --release --target x86_64-unknown-linux-gnu -p velopack_nodeffi -p velopack_libc
|
||||
cp ./target/x86_64-unknown-linux-gnu/release/libvelopack_nodeffi.so ./artifacts/velopack_nodeffi_linux_x64_gnu.node
|
||||
cp ./target/x86_64-unknown-linux-gnu/release/libvelopack_libc.so ./artifacts/velopack_libc_linux_x64_gnu.so
|
||||
cp ./target/x86_64-unknown-linux-gnu/release/libvelopack_libc.a ./artifacts/velopack_libc_linux_x64_gnu.a
|
||||
- name: Build Rust (arm64)
|
||||
run: |
|
||||
cargo clean
|
||||
cargo build --release --target aarch64-unknown-linux-gnu -p velopack_nodeffi -p velopack_libc
|
||||
cp ./target/aarch64-unknown-linux-gnu/release/libvelopack_nodeffi.so ./artifacts/velopack_nodeffi_linux_arm64_gnu.node
|
||||
cp ./target/aarch64-unknown-linux-gnu/release/libvelopack_libc.so ./artifacts/velopack_libc_linux_arm64_gnu.so
|
||||
cp ./target/aarch64-unknown-linux-gnu/release/libvelopack_libc.a ./artifacts/velopack_libc_linux_arm64_gnu.a
|
||||
- name: Upload Rust Build Artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: rust-ubuntu-latest-libs
|
||||
path: |
|
||||
artifacts/*.so
|
||||
artifacts/*.node
|
||||
artifacts/*.a
|
||||
- name: Cancel workflow if failed
|
||||
uses: andymckay/cancel-action@0.5
|
||||
if: ${{ failure() }}
|
||||
|
||||
Reference in New Issue
Block a user