milestone 12: performance bench harness, measured docs, aarch64 tests under qemu and no-dist size assert
This commit is contained in:
@@ -25,6 +25,27 @@ jobs:
|
||||
- name: Run test suite (unit + hermetic loopback integration)
|
||||
run: zig build test -Dintegration
|
||||
|
||||
test-aarch64:
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Zig
|
||||
uses: mlugg/setup-zig@v2
|
||||
with:
|
||||
version: ${{ env.ZIG_VERSION }}
|
||||
|
||||
# qemu-user, not qemu-user-static: Zig execs the bare `qemu-aarch64`
|
||||
# name, and the -static package only ships `qemu-aarch64-static`.
|
||||
- name: Install qemu-user
|
||||
run: |
|
||||
sudo apt-get update -qq
|
||||
sudo apt-get install -qq -y --no-install-recommends qemu-user
|
||||
|
||||
- name: Run test suite under qemu (plain suite, no -Dintegration)
|
||||
run: zig build test-aarch64 -fqemu
|
||||
|
||||
frontend:
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
@@ -137,6 +158,34 @@ jobs:
|
||||
fi
|
||||
done
|
||||
|
||||
# PLAN §18 also budgets the binary without web assets (< 10 MiB). A
|
||||
# separate prefix keeps the with-assets artifacts above intact.
|
||||
- name: Build static musl executables without web assets
|
||||
run: zig build cross -Doptimize=ReleaseSafe --prefix zig-out/nodist
|
||||
|
||||
- name: Assert asset-free executables are within the size budget
|
||||
run: |
|
||||
set -euo pipefail
|
||||
size_limit=$((10 * 1024 * 1024))
|
||||
for triple in x86_64-linux-musl aarch64-linux-musl; do
|
||||
binary="zig-out/nodist/cross/$triple/nxdns"
|
||||
if [ ! -f "$binary" ]; then
|
||||
echo "missing executable: $binary"
|
||||
exit 1
|
||||
fi
|
||||
case "$triple" in
|
||||
x86_64-*) strip_tool=objcopy ;;
|
||||
aarch64-*) strip_tool=aarch64-linux-gnu-objcopy ;;
|
||||
esac
|
||||
"$strip_tool" --strip-all "$binary" "$binary.stripped"
|
||||
size=$(stat -c %s "$binary.stripped")
|
||||
echo "$triple: stripped size without assets $size bytes"
|
||||
if [ "$size" -ge "$size_limit" ]; then
|
||||
echo "stripped asset-free executable exceeds the 10 MiB budget: $binary"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
docker:
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
|
||||
Reference in New Issue
Block a user