Speed up net.sh builds (#16360)

* Speed up net.sh builds

* feedback

* Update net/net.sh

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

* feedback

* fix

Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
This commit is contained in:
Justin Starry
2021-04-07 14:45:03 +08:00
committed by GitHub
parent 02197b1215
commit 6cd4bc5e60
5 changed files with 38 additions and 31 deletions

View File

@ -14,7 +14,7 @@ usage() {
echo "Error: $*"
fi
cat <<EOF
usage: $0 [+<cargo version>] [--debug] <install directory>
usage: $0 [+<cargo version>] [--debug] [--validator-only] <install directory>
EOF
exit $exitcode
}
@ -23,6 +23,7 @@ maybeRustVersion=
installDir=
buildVariant=release
maybeReleaseFlag=--release
validatorOnly=
while [[ -n $1 ]]; do
if [[ ${1:0:1} = - ]]; then
@ -30,6 +31,9 @@ while [[ -n $1 ]]; do
maybeReleaseFlag=
buildVariant=debug
shift
elif [[ $1 = --validator-only ]]; then
validatorOnly=true
shift
else
usage "Unknown option: $1"
fi
@ -71,37 +75,37 @@ if [[ $CI_OS_NAME = windows ]]; then
)
else
./fetch-perf-libs.sh
(
set -x
# shellcheck disable=SC2086 # Don't want to double quote $rust_version
$cargo $maybeRustVersion build $maybeReleaseFlag
)
BINS=(
cargo-build-bpf
cargo-test-bpf
solana
solana-bench-exchange
solana-bench-tps
solana-dos
solana-faucet
solana-gossip
solana-install
solana-install-init
solana-keygen
solana-ledger-tool
solana-log-analyzer
solana-net-shaper
solana-stake-accounts
solana-stake-monitor
solana-sys-tuner
solana-test-validator
solana-tokens
solana-validator
solana-watchtower
)
# Speed up net.sh deploys by excluding unused binaries
if [[ -z "$validatorOnly" ]]; then
BINS+=(
cargo-build-bpf
cargo-test-bpf
solana-dos
solana-install-init
solana-stake-accounts
solana-stake-monitor
solana-test-validator
solana-tokens
solana-watchtower
)
fi
#XXX: Ensure `solana-genesis` is built LAST!
# See https://github.com/solana-labs/solana/issues/5826
BINS+=(solana-genesis)
@ -118,8 +122,12 @@ mkdir -p "$installDir/bin"
set -x
# shellcheck disable=SC2086 # Don't want to double quote $rust_version
"$cargo" $maybeRustVersion build $maybeReleaseFlag "${binArgs[@]}"
# shellcheck disable=SC2086 # Don't want to double quote $rust_version
"$cargo" $maybeRustVersion install spl-token-cli --root "$installDir"
# Exclude `spl-token` binary for net.sh builds
if [[ -z "$validatorOnly" ]]; then
# shellcheck disable=SC2086 # Don't want to double quote $rust_version
"$cargo" $maybeRustVersion install spl-token-cli --root "$installDir"
fi
)
for bin in "${BINS[@]}"; do