ci: replace docker build with cargo-zigbuild for mips cross-compilation
Some checks failed
Build MIPS Binary / build (push) Has been cancelled
Some checks failed
Build MIPS Binary / build (push) Has been cancelled
This commit is contained in:
@@ -86,30 +86,41 @@ jobs:
|
|||||||
npx @tailwindcss/cli -i input.css -o public/tailwind.css
|
npx @tailwindcss/cli -i input.css -o public/tailwind.css
|
||||||
trunk build --release
|
trunk build --release
|
||||||
|
|
||||||
- name: Build MIPS Builder Image
|
- name: Setup Zig & Cross Setup
|
||||||
run: |
|
run: |
|
||||||
if ! docker image inspect vibetorrent-mips-builder >/dev/null 2>&1; then
|
# Install Zig for cross-compilation (easier/cleaner than GCC + Cargo wrappers without Docker)
|
||||||
docker build --platform linux/amd64 -t vibetorrent-mips-builder -f - . <<'DOCKERFILE'
|
ZIG_VER="0.13.0"
|
||||||
FROM ghcr.io/cross-rs/mips-unknown-linux-musl:main
|
ARCH=$(uname -m)
|
||||||
RUN apt-get update -qq && \
|
if [ "$ARCH" = "x86_64" ]; then ZIG_ARCH="x86_64"; fi
|
||||||
apt-get install -y -qq curl ca-certificates && \
|
if [ "$ARCH" = "aarch64" ]; then ZIG_ARCH="aarch64"; fi
|
||||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain nightly --component rust-src && \
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
echo "Downloading Zig $ZIG_VER for $ZIG_ARCH..."
|
||||||
ENV PATH="/root/.cargo/bin:${PATH}"
|
curl -fsSL "https://ziglang.org/download/$ZIG_VER/zig-linux-$ZIG_ARCH-$ZIG_VER.tar.xz" -o zig.tar.xz
|
||||||
DOCKERFILE
|
tar -xf zig.tar.xz
|
||||||
fi
|
mv "zig-linux-$ZIG_ARCH-$ZIG_VER" "$HOME/zig"
|
||||||
|
|
||||||
|
# Add Zig to PATH
|
||||||
|
echo "$HOME/zig" >> $GITHUB_PATH
|
||||||
|
export PATH="$HOME/zig:$PATH"
|
||||||
|
|
||||||
|
zig version
|
||||||
|
|
||||||
|
# Install cargo-zigbuild
|
||||||
|
. "$HOME/.cargo/env"
|
||||||
|
cargo install cargo-zigbuild
|
||||||
|
|
||||||
- name: Build Backend (MIPS)
|
- name: Build Backend (MIPS)
|
||||||
run: |
|
run: |
|
||||||
docker run --rm \
|
. "$HOME/.cargo/env"
|
||||||
-v "$PWD":/project \
|
export PATH="$HOME/zig:$PATH"
|
||||||
-v cargo-mips-registry:/root/.cargo/registry \
|
cd backend
|
||||||
-w /project/backend \
|
|
||||||
vibetorrent-mips-builder \
|
# Use cargo-zigbuild to cross-compile
|
||||||
bash -c '
|
# mips-unknown-linux-musl matches zig target mips-linux-musl
|
||||||
cargo build --target mips-unknown-linux-musl --release -Z build-std=std,panic_abort &&
|
|
||||||
file /project/target/mips-unknown-linux-musl/release/backend
|
cargo zigbuild --target mips-unknown-linux-musl --release -Z build-std=std,panic_abort
|
||||||
'
|
|
||||||
|
file target/mips-unknown-linux-musl/release/backend
|
||||||
|
|
||||||
- name: Rename Binary
|
- name: Rename Binary
|
||||||
run: mv target/mips-unknown-linux-musl/release/backend target/mips-unknown-linux-musl/release/vibetorrent-mips
|
run: mv target/mips-unknown-linux-musl/release/backend target/mips-unknown-linux-musl/release/vibetorrent-mips
|
||||||
|
|||||||
Reference in New Issue
Block a user