fix: static musl build — eliminates GLIBC version mismatch on ISO
All checks were successful
Build Archipelago ISO (dev) / build-iso (push) Successful in 13m3s
All checks were successful
Build Archipelago ISO (dev) / build-iso (push) Successful in 13m3s
Build server (Debian 13) has GLIBC 2.41 but ISO targets Debian 12 (GLIBC 2.36). Switching to x86_64-unknown-linux-musl produces a fully static binary that runs on any Linux. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -30,26 +30,31 @@ jobs:
|
||||
run: |
|
||||
# Skip apt if packages already installed (persistent runner)
|
||||
if dpkg -s debootstrap squashfs-tools xorriso isolinux syslinux-common mtools \
|
||||
grub-efi-amd64-bin grub-pc-bin grub-common >/dev/null 2>&1; then
|
||||
grub-efi-amd64-bin grub-pc-bin grub-common musl-tools >/dev/null 2>&1; then
|
||||
echo "ISO build deps already installed, skipping apt"
|
||||
else
|
||||
sudo apt-get update -qq
|
||||
sudo apt-get install -y -qq \
|
||||
debootstrap squashfs-tools xorriso \
|
||||
isolinux syslinux-common mtools \
|
||||
grub-efi-amd64-bin grub-pc-bin grub-common
|
||||
grub-efi-amd64-bin grub-pc-bin grub-common \
|
||||
musl-tools
|
||||
fi
|
||||
# Ensure musl Rust target is available
|
||||
source $HOME/.cargo/env 2>/dev/null || true
|
||||
rustup target add x86_64-unknown-linux-musl 2>/dev/null || true
|
||||
|
||||
- name: Build backend (incremental)
|
||||
- name: Build backend (incremental, musl static)
|
||||
run: |
|
||||
source $HOME/.cargo/env 2>/dev/null || true
|
||||
# Build in persistent repo dir to reuse target/ cache
|
||||
cd "$HOME/archy"
|
||||
export GIT_HASH=$(git rev-parse --short HEAD)
|
||||
cargo build --release --manifest-path core/Cargo.toml
|
||||
# Static musl build — binary runs on any Linux (no GLIBC dependency)
|
||||
cargo build --release --target x86_64-unknown-linux-musl --manifest-path core/Cargo.toml
|
||||
# Copy binary to workspace for downstream steps
|
||||
mkdir -p "$GITHUB_WORKSPACE/core/target/release"
|
||||
cp core/target/release/archipelago "$GITHUB_WORKSPACE/core/target/release/"
|
||||
cp core/target/x86_64-unknown-linux-musl/release/archipelago "$GITHUB_WORKSPACE/core/target/release/"
|
||||
|
||||
- name: Build frontend
|
||||
run: cd neode-ui && npm ci && npm run build
|
||||
|
||||
Reference in New Issue
Block a user