build inputs: ship igneum-pow beside the zip root and the coin image the engine embeds

The first PC build (job build-20261005-075300) failed in 52 s: the node's crates depend on ../../../../igneum-pow,
which the zip did not carry, and the engine embeds brand/igneum-coin-1024.png, which the staged brand/ lacked.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
igneum-josh 2026-10-05 09:01:17 +01:00
parent 21e896373d
commit ae9e326134

View file

@ -16,6 +16,8 @@
# app/igneum-app/ the engine crate (src, ui, resources, build.rs, Cargo.lock), without target/
# brand/icons/ igneum.ico and the icon sources (build.rs links the coin icon on the Windows target)
# proto-cuda/ the worker sources (without nvrtc/redist, 90 MB of NVIDIA DLLs the job does not need)
# ../igneum-pow/ beside the zip root (the node's crates depend on ../../../../igneum-pow, which resolves to
# <extract dir>/igneum-pow when the zip is unpacked); without it every node build fails at once
# Outputs the job returns: igneumd, igneum-miner (Linux and Windows), igneum-app (Windows; Linux when it builds).
#
# Reads: ~/.config/igneum/dl-token, ~/.config/igneum/dlsite-dir (IGNEUM_DLSITE overrides), ~/.config/igneum/vercel
@ -81,7 +83,11 @@ if [ "$WITH_APP" = 1 ]; then
echo "packing app/igneum-app ($APP_VERSION) and brand/icons"
rsync -a --exclude 'target' --exclude '.DS_Store' "$ROOT/app/igneum-app/" "$STAGE/app/igneum-app/"
rsync -a --exclude '.DS_Store' "$ROOT/brand/icons/" "$STAGE/brand/icons/"
cp "$ROOT/brand/igneum-coin-1024.png" "$STAGE/brand/" # app/igneum-app/src/server.rs embeds ../../../brand/igneum-coin-1024.png
fi
echo "packing igneum-pow (the node's path dependency ../../../../igneum-pow, a sibling of the zip root)"
[ -f "$ROOT/igneum-pow/Cargo.toml" ] || { echo "no $ROOT/igneum-pow/Cargo.toml" >&2; exit 1; }
rsync -a --exclude 'target' --exclude 'target-*' --exclude '.DS_Store' "$ROOT/igneum-pow/" "$TMP/igneum-pow/"
echo "packing proto-cuda (without nvrtc/redist)"
rsync -a --exclude 'nvrtc/redist' --exclude '.DS_Store' --exclude '*.exe' --exclude '*.dll' "$ROOT/proto-cuda/" "$STAGE/proto-cuda/"
@ -108,7 +114,7 @@ json.dump(m, open(out, "w"), indent=2, sort_keys=True)
PY
rm -f "$OUT"
(cd "$TMP" && zip -qr "$OUT" "igneum-build-inputs" -x '*.DS_Store')
(cd "$TMP" && zip -qr "$OUT" "igneum-build-inputs" "igneum-pow" -x '*.DS_Store')
SUM="$(shasum -a 256 "$OUT" | awk '{print $1}')"
SIZE="$(stat -f %z "$OUT")"
printf '%s\n' "$SUM" > "${OUT%.zip}.sha256"