From 8b19db7c60541306a7002b43889e0bde3ed2f23c Mon Sep 17 00:00:00 2001 From: Chance Date: Thu, 10 Apr 2025 16:26:11 -0400 Subject: [PATCH] fix: ci/cd workflow doesnt properly compile wayland --- .forgejo/workflows/rust.yml | 68 +++++++++++++++++++++++++++++++------ 1 file changed, 58 insertions(+), 10 deletions(-) diff --git a/.forgejo/workflows/rust.yml b/.forgejo/workflows/rust.yml index 7d0273c..b536c34 100644 --- a/.forgejo/workflows/rust.yml +++ b/.forgejo/workflows/rust.yml @@ -12,20 +12,66 @@ jobs: target: - x86_64-unknown-linux-gnu - aarch64-unknown-linux-gnu + - x86_64-pc-windows-gnu + - x86_64-apple-darwin + - aarch64-apple-darwin include: + # Linux targets - target: x86_64-unknown-linux-gnu - binary_name: zenyx-x86_64 + binary_name: zenyx-x86_64-linux + source_binary: zenyx + deps: libwayland-dev wayland-protocols + linker_env_var: "" + linker_env_value: "" + cargo_command: build - target: aarch64-unknown-linux-gnu - binary_name: zenyx-aarch64 + binary_name: zenyx-aarch64-linux + source_binary: zenyx + deps: gcc-aarch64-linux-gnu g++-aarch64-linux-gnu qemu-user libwayland-dev wayland-protocols + linker_env_var: CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER + linker_env_value: aarch64-linux-gnu-gcc + cargo_command: build + # Windows target + - target: x86_64-pc-windows-gnu + binary_name: zenyx-x86_64-windows.exe + source_binary: zenyx.exe + deps: mingw-w64 + linker_env_var: CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER + linker_env_value: x86_64-w64-mingw32-gcc + cargo_command: build + # macOS targets + - target: x86_64-apple-darwin + binary_name: zenyx-x86_64-macos + source_binary: zenyx + deps: + linker_env_var: CARGO_TARGET_X86_64_APPLE_DARWIN_LINKER + linker_env_value: zig + cargo_command: zigbuild + - target: aarch64-apple-darwin + binary_name: zenyx-aarch64-macos + source_binary: zenyx + deps: + linker_env_var: CARGO_TARGET_AARCH64_APPLE_DARWIN_LINKER + linker_env_value: zig + cargo_command: zigbuild runs-on: codeberg-small steps: - name: 📥 Clone repository uses: actions/checkout@v4 - - name: 🛠️ Install cross-compilation dependencies + - name: 🛠️ Install dependencies run: | apt-get update - apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu qemu-user + # Install platform-specific dependencies + if [[ "${{ matrix.target }}" == *"linux"* ]]; then + apt-get install -y ${{ matrix.deps }} + elif [[ "${{ matrix.target }}" == *"windows"* ]]; then + apt-get install -y ${{ matrix.deps }} + elif [[ "${{ matrix.target }}" == *"apple-darwin"* ]]; then + wget https://ziglang.org/builds/zig-linux-x86_64-0.11.0.tar.xz + tar xf zig-linux-x86_64-0.11.0.tar.xz + echo "$(pwd)/zig-linux-x86_64-0.11.0" >> $GITHUB_PATH + fi - name: 🔧 Install Rust uses: https://github.com/actions-rs/toolchain@v1 @@ -35,18 +81,20 @@ jobs: target: ${{ matrix.target }} profile: minimal + - name: 🔧 Install cargo-zigbuild (macOS) + if: contains(matrix.target, 'apple-darwin') + run: cargo install cargo-zigbuild + - name: 🏗️ Build - uses: https://github.com/actions-rs/cargo@v1 - with: - command: build - args: --release --target ${{ matrix.target }} + run: cargo ${{ matrix.cargo_command }} --release --target ${{ matrix.target }} env: - CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc + ${{ matrix.linker_env_var }}: ${{ matrix.linker_env_value }} + CARGO_TERM_COLOR: always - name: 📦 Prepare binary run: | mkdir -p artifacts - cp target/${{ matrix.target }}/release/zenyx artifacts/${{ matrix.binary_name }} + cp target/${{ matrix.target }}/release/${{ matrix.source_binary }} artifacts/${{ matrix.binary_name }} chmod +x artifacts/${{ matrix.binary_name }} - name: Upload artifacts