2018-11-11 08:19:04 -08:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
set -e
|
2018-08-13 15:57:23 -07:00
|
|
|
cd "$(dirname "$0")/.."
|
|
|
|
|
2018-12-18 14:25:10 -08:00
|
|
|
source ci/_
|
2018-12-13 21:44:50 -08:00
|
|
|
source ci/upload-ci-artifact.sh
|
2018-10-12 15:13:10 -07:00
|
|
|
|
|
|
|
eval "$(ci/channel-info.sh)"
|
2020-04-29 18:02:05 -07:00
|
|
|
source ci/rust-version.sh all
|
2018-08-13 15:57:23 -07:00
|
|
|
|
2018-09-24 10:20:58 -07:00
|
|
|
set -o pipefail
|
2018-11-21 12:16:16 -08:00
|
|
|
export RUST_BACKTRACE=1
|
2018-09-24 10:20:58 -07:00
|
|
|
|
2018-10-12 15:13:10 -07:00
|
|
|
UPLOAD_METRICS=""
|
2019-06-06 12:20:47 -07:00
|
|
|
TARGET_BRANCH=$CI_BRANCH
|
|
|
|
if [[ -z $CI_BRANCH ]] || [[ -n $CI_PULL_REQUEST ]]; then
|
2018-10-12 15:13:10 -07:00
|
|
|
TARGET_BRANCH=$EDGE_CHANNEL
|
|
|
|
else
|
|
|
|
UPLOAD_METRICS="upload"
|
|
|
|
fi
|
|
|
|
|
2018-09-19 13:16:55 -07:00
|
|
|
BENCH_FILE=bench_output.log
|
2018-10-12 15:13:10 -07:00
|
|
|
BENCH_ARTIFACT=current_bench_results.log
|
2019-03-18 22:08:21 -07:00
|
|
|
|
2019-06-14 19:11:16 -07:00
|
|
|
# Clear the C dependency files, if dependeny moves these files are not regenerated
|
|
|
|
test -d target/debug/bpf && find target/debug/bpf -name '*.d' -delete
|
|
|
|
test -d target/release/bpf && find target/release/bpf -name '*.d' -delete
|
|
|
|
|
2019-04-29 13:09:11 -07:00
|
|
|
# Ensure all dependencies are built
|
2019-09-19 20:50:34 -07:00
|
|
|
_ cargo +$rust_nightly build --release
|
2019-04-29 13:09:11 -07:00
|
|
|
|
|
|
|
# Remove "BENCH_FILE", if it exists so that the following commands can append
|
2019-04-05 16:04:21 -07:00
|
|
|
rm -f "$BENCH_FILE"
|
|
|
|
|
|
|
|
# Run sdk benches
|
|
|
|
_ cargo +$rust_nightly bench --manifest-path sdk/Cargo.toml ${V:+--verbose} \
|
|
|
|
-- -Z unstable-options --format=json | tee -a "$BENCH_FILE"
|
|
|
|
|
2019-03-25 13:10:56 -07:00
|
|
|
# Run runtime benches
|
|
|
|
_ cargo +$rust_nightly bench --manifest-path runtime/Cargo.toml ${V:+--verbose} \
|
2019-04-05 16:04:21 -07:00
|
|
|
-- -Z unstable-options --format=json | tee -a "$BENCH_FILE"
|
2019-03-25 13:10:56 -07:00
|
|
|
|
2019-03-18 22:08:21 -07:00
|
|
|
# Run core benches
|
|
|
|
_ cargo +$rust_nightly bench --manifest-path core/Cargo.toml ${V:+--verbose} \
|
2019-04-05 16:04:21 -07:00
|
|
|
-- -Z unstable-options --format=json | tee -a "$BENCH_FILE"
|
2018-11-21 12:16:16 -08:00
|
|
|
|
2019-03-04 10:08:21 -08:00
|
|
|
# Run bpf benches
|
2019-04-17 14:05:49 -07:00
|
|
|
_ cargo +$rust_nightly bench --manifest-path programs/bpf/Cargo.toml ${V:+--verbose} --features=bpf_c \
|
2019-03-18 22:08:21 -07:00
|
|
|
-- -Z unstable-options --format=json --nocapture | tee -a "$BENCH_FILE"
|
|
|
|
|
2020-03-17 11:02:07 -07:00
|
|
|
# Run banking/accounts bench. Doesn't require nightly, but use since it is already built.
|
2019-11-12 21:20:48 -08:00
|
|
|
_ cargo +$rust_nightly run --release --manifest-path banking-bench/Cargo.toml ${V:+--verbose} | tee -a "$BENCH_FILE"
|
2020-03-17 11:02:07 -07:00
|
|
|
_ cargo +$rust_nightly run --release --manifest-path accounts-bench/Cargo.toml ${V:+--verbose} -- --num_accounts 10000 --num_slots 4 | tee -a "$BENCH_FILE"
|
2019-08-30 11:10:32 -07:00
|
|
|
|
2019-10-21 22:25:06 -07:00
|
|
|
# `solana-upload-perf` disabled as it can take over 30 minutes to complete for some
|
|
|
|
# reason
|
2019-05-07 23:02:09 -07:00
|
|
|
exit 0
|
2019-03-14 19:41:05 -07:00
|
|
|
_ cargo +$rust_nightly run --release --package solana-upload-perf \
|
2019-05-07 22:30:42 -07:00
|
|
|
-- "$BENCH_FILE" "$TARGET_BRANCH" "$UPLOAD_METRICS" | tee "$BENCH_ARTIFACT"
|
2018-10-12 15:13:10 -07:00
|
|
|
|
2019-05-07 22:30:42 -07:00
|
|
|
upload-ci-artifact "$BENCH_FILE"
|
2018-12-13 21:44:50 -08:00
|
|
|
upload-ci-artifact "$BENCH_ARTIFACT"
|