77 lines
2.8 KiB
Bash
Raw Normal View History

2025-12-18 09:58:47 +01:00
#!/usr/bin/env bash
set -euo pipefail
NOMOS_NODE_REV="${NOMOS_NODE_REV:?NOMOS_NODE_REV build arg missing}"
mkdir -p /workspace/artifacts
TARGET_ARCH="$(uname -m)"
have_prebuilt() {
[ -f testing-framework/assets/stack/bin/logos-blockchain-node ] && \
[ -f testing-framework/assets/stack/bin/logos-blockchain-executor ] && \
[ -f testing-framework/assets/stack/bin/logos-blockchain-cli ]
2025-12-18 09:58:47 +01:00
}
bin_matches_arch() {
local info
info="$(file -b testing-framework/assets/stack/bin/logos-blockchain-node 2>/dev/null || true)"
2025-12-18 09:58:47 +01:00
case "${info}" in
*ELF*) : ;;
*) return 1 ;;
esac
local pattern
case "${TARGET_ARCH}" in
x86_64) pattern="x86-64|x86_64" ;;
aarch64|arm64) pattern="arm64|aarch64" ;;
*) pattern="${TARGET_ARCH}" ;;
esac
echo "${info}" | grep -Eqi "${pattern}"
}
if have_prebuilt && bin_matches_arch; then
echo "Using prebuilt logos-blockchain binaries from testing-framework/assets/stack/bin"
cp testing-framework/assets/stack/bin/logos-blockchain-node /workspace/artifacts/logos-blockchain-node
cp testing-framework/assets/stack/bin/logos-blockchain-executor /workspace/artifacts/logos-blockchain-executor
cp testing-framework/assets/stack/bin/logos-blockchain-cli /workspace/artifacts/logos-blockchain-cli
2025-12-18 09:58:47 +01:00
exit 0
fi
if have_prebuilt; then
echo "Prebuilt logos-blockchain binaries do not match target architecture (${TARGET_ARCH}); rebuilding from source"
2025-12-18 09:58:47 +01:00
else
echo "Prebuilt logos-blockchain binaries missing; building from source"
2025-12-18 09:58:47 +01:00
fi
echo "Building logos-blockchain binaries from source (rev ${NOMOS_NODE_REV})"
2025-12-18 09:58:47 +01:00
git clone https://github.com/logos-co/nomos-node.git /tmp/nomos-node
cd /tmp/nomos-node
2025-12-18 09:58:47 +01:00
git fetch --depth 1 origin "${NOMOS_NODE_REV}"
git checkout "${NOMOS_NODE_REV}"
git reset --hard
git clean -fdx
# Enable real verification keys when available.
if [ -f "/opt/circuits/zksign/verification_key.json" ] \
|| [ -f "/opt/circuits/pol/verification_key.json" ] \
|| [ -f "/opt/circuits/poq/verification_key.json" ] \
|| [ -f "/opt/circuits/poc/verification_key.json" ]; then
export CARGO_FEATURE_BUILD_VERIFICATION_KEY=1
else
unset CARGO_FEATURE_BUILD_VERIFICATION_KEY
fi
2025-12-18 09:58:47 +01:00
# Enable pol-dev-mode via cfg to let POL_PROOF_DEV_MODE short-circuit proofs in tests.
RUSTFLAGS='--cfg feature="pol-dev-mode"' NOMOS_CIRCUITS=/opt/circuits \
LOGOS_BLOCKCHAIN_CIRCUITS=/opt/circuits \
cargo build --features "testing" \
-p logos-blockchain-node -p logos-blockchain-executor -p logos-blockchain-cli
2025-12-18 09:58:47 +01:00
cp /tmp/nomos-node/target/debug/logos-blockchain-node /workspace/artifacts/logos-blockchain-node
cp /tmp/nomos-node/target/debug/logos-blockchain-executor /workspace/artifacts/logos-blockchain-executor
cp /tmp/nomos-node/target/debug/logos-blockchain-cli /workspace/artifacts/logos-blockchain-cli
2025-12-18 09:58:47 +01:00
rm -rf /tmp/nomos-node/target/debug/incremental