2 Commits
+11 -34
View File
@@ -7,10 +7,6 @@ on:
- "v*" - "v*"
workflow_dispatch: workflow_dispatch:
env:
# When using cargo-zigbuild for *-gnu targets, link against this glibc baseline (wider VPS compatibility).
WAKEY_CC_GLIBC_VERSION: "2.28"
permissions: permissions:
contents: write contents: write
@@ -23,7 +19,7 @@ jobs:
- uses: dtolnay/rust-toolchain@stable - uses: dtolnay/rust-toolchain@stable
with: with:
targets: armv7-unknown-linux-musleabihf,x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu targets: x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu
- uses: pnpm/action-setup@v4 - uses: pnpm/action-setup@v4
with: with:
@@ -35,14 +31,8 @@ jobs:
cache: pnpm cache: pnpm
cache-dependency-path: ui/pnpm-lock.yaml cache-dependency-path: ui/pnpm-lock.yaml
- name: Ensure toolchain and targets - name: Install cross
shell: pwsh run: cargo install cross --locked
run: |
rustc -V
cargo -V
rustup target add armv7-unknown-linux-musleabihf
rustup target add x86_64-unknown-linux-gnu
rustup target add aarch64-unknown-linux-gnu
- name: Cache cargo - name: Cache cargo
uses: actions/cache@v4 uses: actions/cache@v4
@@ -53,10 +43,9 @@ jobs:
target target
key: linux-cargo-${{ hashFiles('**/Cargo.lock') }} key: linux-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Build (armv7-musl) - name: Build (armv7-musl with cross)
shell: pwsh
run: | run: |
cargo build --release --target armv7-unknown-linux-musleabihf -p wakey -p wakey-agent cross build --release --target armv7-unknown-linux-musleabihf -p wakey -p wakey-agent
- name: Build UI dist - name: Build UI dist
shell: bash shell: bash
@@ -66,29 +55,17 @@ jobs:
pnpm install --frozen-lockfile pnpm install --frozen-lockfile
pnpm build pnpm build
- name: Build control-plane (linux-gnu; zig + older glibc when available) - name: Build control-plane (linux-gnu)
shell: bash shell: bash
run: | run: |
set -euo pipefail set -euo pipefail
GLIBC_VER="${WAKEY_CC_GLIBC_VERSION:-2.28}"
GNU_TARGETS=(x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu)
use_zig=false # x86_64 builds natively; aarch64 needs cross
if command -v zig >/dev/null 2>&1 && cargo zigbuild -h >/dev/null 2>&1; then echo "Building control-plane x86_64-unknown-linux-gnu (native)"
use_zig=true cargo build --release --target x86_64-unknown-linux-gnu -p wakey-control-plane
fi
if [ "$use_zig" = true ]; then echo "Building control-plane aarch64-unknown-linux-gnu (cross)"
echo "cargo-zigbuild + zig found: building control-plane with glibc ${GLIBC_VER}" cross build --release --target aarch64-unknown-linux-gnu -p wakey-control-plane
for base in "${GNU_TARGETS[@]}"; do
cargo zigbuild --release --target "${base}.${GLIBC_VER}" -p wakey-control-plane
done
else
echo "zig or cargo zigbuild not available: using plain cargo build (binary needs glibc >= host)"
for base in "${GNU_TARGETS[@]}"; do
cargo build --release --target "$base" -p wakey-control-plane
done
fi
- name: Package rootfs tarball - name: Package rootfs tarball
shell: pwsh shell: pwsh