Skip to content

Commit

Permalink
chore: build contracts and protocol circuits sequentially if not enou…
Browse files Browse the repository at this point in the history
…gh ram (#5499)

#5426 but for building noir projects.
  • Loading branch information
TomAFrench authored Mar 28, 2024
1 parent 191f0df commit ea072b6
Showing 1 changed file with 29 additions and 5 deletions.
34 changes: 29 additions & 5 deletions noir-projects/bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,33 @@ g="\033[32m" # Green
b="\033[34m" # Blue
r="\033[0m" # Reset

((cd "./noir-contracts" && ./bootstrap.sh) > >(awk -v g="$g" -v r="$r" '{print g "contracts: " r $0}')) &
((cd "./noir-protocol-circuits" && ./bootstrap.sh) > >(awk -v b="$b" -v r="$r" '{print b "protocol-circuits: " r $0}')) &
AVAILABLE_MEMORY=0

case "$(uname)" in
Linux*)
# Check available memory on Linux
AVAILABLE_MEMORY=$(awk '/MemFree/ { printf $2 }' /proc/meminfo)
;;
*)
echo "Parallel builds not supported on this operating system"
;;
esac
# This value may be too low.
# If builds fail with an amount of free memory greater than this value then it should be increased.
MIN_PARALLEL_BUILD_MEMORY=32000000

if [[ AVAILABLE_MEMORY -lt MIN_PARALLEL_BUILD_MEMORY ]]; then
echo "System does not have enough memory for parallel builds, falling back to sequential"
./noir-contracts/bootstrap.sh
./noir-protocol-circuits/bootstrap.sh
else
((./noir-contracts/bootstrap.sh) > >(awk -v g="$g" -v r="$r" '{print g "contracts: " r $0}')) &
((./noir-protocol-circuits/bootstrap.sh) > >(awk -v b="$b" -v r="$r" '{print b "protocol-circuits: " r $0}')) &

for job in $(jobs -p); do
wait $job || exit 1
done
fi



for job in $(jobs -p); do
wait $job || exit 1
done

0 comments on commit ea072b6

Please sign in to comment.