From 108070db4b4a94c127a6025373720669f01d1e0b Mon Sep 17 00:00:00 2001 From: vikingowl Date: Thu, 2 Oct 2025 02:58:13 +0200 Subject: [PATCH] Update Woodpecker CI: improve cross-compilation setup and refine build steps --- .woodpecker.yml | 49 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 35 insertions(+), 14 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index fa5f5e7..f571ef8 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -39,37 +39,58 @@ matrix: EXT: ".exe" steps: - - name: install-deps - image: *rust_image - commands: - - apt-get update - - apt-get install -y musl-tools gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf gcc-mingw-w64-x86-64 zip - - name: build image: *rust_image commands: + # Install cross-compilation tools + - apt-get update + - apt-get install -y musl-tools gcc-aarch64-linux-gnu g++-aarch64-linux-gnu gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf mingw-w64 zip + + # Verify cross-compilers are installed + - which aarch64-linux-gnu-gcc || echo "aarch64-linux-gnu-gcc not found!" + - which arm-linux-gnueabihf-gcc || echo "arm-linux-gnueabihf-gcc not found!" + - which x86_64-w64-mingw32-gcc || echo "x86_64-w64-mingw32-gcc not found!" + + # Add rust target - rustup target add ${TARGET} + + # Set up cross-compilation environment variables and build - | case "${TARGET}" in aarch64-unknown-linux-gnu) - export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc + export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=/usr/bin/aarch64-linux-gnu-gcc + export CC_aarch64_unknown_linux_gnu=/usr/bin/aarch64-linux-gnu-gcc + export CXX_aarch64_unknown_linux_gnu=/usr/bin/aarch64-linux-gnu-g++ + export AR_aarch64_unknown_linux_gnu=/usr/bin/aarch64-linux-gnu-ar ;; aarch64-unknown-linux-musl) - export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-linux-gnu-gcc - export CC_aarch64_unknown_linux_musl=aarch64-linux-gnu-gcc + export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=/usr/bin/aarch64-linux-gnu-gcc + export CC_aarch64_unknown_linux_musl=/usr/bin/aarch64-linux-gnu-gcc + export CXX_aarch64_unknown_linux_musl=/usr/bin/aarch64-linux-gnu-g++ + export AR_aarch64_unknown_linux_musl=/usr/bin/aarch64-linux-gnu-ar ;; armv7-unknown-linux-gnueabihf) - export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc + export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=/usr/bin/arm-linux-gnueabihf-gcc + export CC_armv7_unknown_linux_gnueabihf=/usr/bin/arm-linux-gnueabihf-gcc + export CXX_armv7_unknown_linux_gnueabihf=/usr/bin/arm-linux-gnueabihf-g++ + export AR_armv7_unknown_linux_gnueabihf=/usr/bin/arm-linux-gnueabihf-ar ;; armv7-unknown-linux-musleabihf) - export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABIHF_LINKER=arm-linux-gnueabihf-gcc - export CC_armv7_unknown_linux_musleabihf=arm-linux-gnueabihf-gcc + export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABIHF_LINKER=/usr/bin/arm-linux-gnueabihf-gcc + export CC_armv7_unknown_linux_musleabihf=/usr/bin/arm-linux-gnueabihf-gcc + export CXX_armv7_unknown_linux_musleabihf=/usr/bin/arm-linux-gnueabihf-g++ + export AR_armv7_unknown_linux_musleabihf=/usr/bin/arm-linux-gnueabihf-ar ;; x86_64-pc-windows-gnu) - export CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER=x86_64-w64-mingw32-gcc + export CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER=/usr/bin/x86_64-w64-mingw32-gcc + export CC_x86_64_pc_windows_gnu=/usr/bin/x86_64-w64-mingw32-gcc + export CXX_x86_64_pc_windows_gnu=/usr/bin/x86_64-w64-mingw32-g++ + export AR_x86_64_pc_windows_gnu=/usr/bin/x86_64-w64-mingw32-ar ;; esac - - cargo build --release --all-features --target ${TARGET} + + # Build the project + cargo build --release --all-features --target ${TARGET} - name: package image: *rust_image