Skip to content

Commit

Permalink
chore: only generate test result on specific branches (backport #27591)…
Browse files Browse the repository at this point in the history
… (#27635)

* chore: only generate test result on specific branches (#27591)

* chore: only generate test result on specific branches

* lint

(cherry picked from commit 8c10935)

# Conflicts:
#	.buildkite/hooks/post-command
#	ci/test-stable.sh

* fix conflict

Co-authored-by: Yihau Chen <[email protected]>
  • Loading branch information
mergify[bot] and yihau authored Sep 7, 2022
1 parent e8744e3 commit 5a42187
Show file tree
Hide file tree
Showing 2 changed files with 96 additions and 13 deletions.
12 changes: 12 additions & 0 deletions .buildkite/hooks/post-command
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,18 @@ else
SUCCESS=false
fi

if [[ -n $BUILDKITE && -f "results.json" ]]; then
# prepare result file
awk '/{ "type": .* }/' results.json > sanitized-results.json

# upload to buildkite
buildkite-test-collector < sanitized-results.json

# upload to datadog
cargo2junit > results.xml < sanitized-results.json
datadog-ci junit upload --service solana results.xml
fi

point_tags="pipeline=$BUILDKITE_PIPELINE_SLUG,job=$CI_LABEL,pr=$PR,success=$SUCCESS"
point_tags="${point_tags// /\\ }" # Escape spaces

Expand Down
97 changes: 84 additions & 13 deletions ci/test-stable.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,12 @@ annotate() {
}
}

exit_if_error() {
if [[ "$1" -ne 0 ]]; then
exit "$1"
fi
}

# Run the appropriate test based on entrypoint
testName=$(basename "$0" .sh)

Expand All @@ -32,10 +38,35 @@ NPROC=$(nproc)
JOBS=$((JOBS>NPROC ? NPROC : JOBS))


# get channel info
eval "$(ci/channel-info.sh)"

need_to_generate_test_result() {
local branches=(
"$EDGE_CHANNEL"
"$BETA_CHANNEL"
"$STABLE_CHANNEL"
)

for n in "${branches[@]}";
do
if [[ "$CI_BRANCH" == "$n" ]]; then
return 0
fi
done

return 1
}

echo "Executing $testName"
case $testName in
test-stable)
_ "$cargo" stable test --jobs "$JOBS" --all --tests --exclude solana-local-cluster ${V:+--verbose} -- --nocapture
if need_to_generate_test_result; then
_ "$cargo" stable test --jobs "$JOBS" --all --tests --exclude solana-local-cluster ${V:+--verbose} -- -Z unstable-options --format json --report-time | tee results.json
exit_if_error "${PIPESTATUS[0]}"
else
_ "$cargo" stable test --jobs "$JOBS" --all --tests --exclude solana-local-cluster ${V:+--verbose} -- --nocapture
fi
;;
test-stable-bpf)
# Clear the C dependency files, if dependency moves these files are not regenerated
Expand All @@ -57,9 +88,16 @@ test-stable-bpf)

# BPF C program system tests
_ make -C programs/bpf/c tests
_ "$cargo" stable test \
--manifest-path programs/bpf/Cargo.toml \
--no-default-features --features=bpf_c,bpf_rust -- --nocapture
if need_to_generate_test_result; then
_ "$cargo" stable test \
--manifest-path programs/bpf/Cargo.toml \
--no-default-features --features=bpf_c,bpf_rust -- -Z unstable-options --format json --report-time | tee results.json
exit_if_error "${PIPESTATUS[0]}"
else
_ "$cargo" stable test \
--manifest-path programs/bpf/Cargo.toml \
--no-default-features --features=bpf_c,bpf_rust -- --nocapture
fi

# BPF Rust program unit tests
for bpf_test in programs/bpf/rust/*; do
Expand Down Expand Up @@ -92,10 +130,18 @@ test-stable-bpf)

# BPF program instruction count assertion
bpf_target_path=programs/bpf/target
_ "$cargo" stable test \
--manifest-path programs/bpf/Cargo.toml \
--no-default-features --features=bpf_c,bpf_rust assert_instruction_count \
-- --nocapture &> "${bpf_target_path}"/deploy/instuction_counts.txt
if need_to_generate_test_result; then
_ "$cargo" stable test \
--manifest-path programs/bpf/Cargo.toml \
--no-default-features --features=bpf_c,bpf_rust assert_instruction_count \
-- -Z unstable-options --format json --report-time |& tee results.json
awk '!/{ "type": .* }/' results.json >"${bpf_target_path}"/deploy/instuction_counts.txt
else
_ "$cargo" stable test \
--manifest-path programs/bpf/Cargo.toml \
--no-default-features --features=bpf_c,bpf_rust assert_instruction_count \
-- --nocapture &> "${bpf_target_path}"/deploy/instuction_counts.txt
fi

bpf_dump_archive="bpf-dumps.tar.bz2"
rm -f "$bpf_dump_archive"
Expand All @@ -120,27 +166,52 @@ test-stable-perf)
fi

_ "$cargo" stable build --bins ${V:+--verbose}
_ "$cargo" stable test --package solana-perf --package solana-ledger --package solana-core --lib ${V:+--verbose} -- --nocapture
if need_to_generate_test_result; then
_ "$cargo" stable test --package solana-perf --package solana-ledger --package solana-core --lib ${V:+--verbose} -- -Z unstable-options --format json --report-time | tee results.json
exit_if_error "${PIPESTATUS[0]}"
else
_ "$cargo" stable test --package solana-perf --package solana-ledger --package solana-core --lib ${V:+--verbose} -- --nocapture
fi
_ "$cargo" stable run --manifest-path poh-bench/Cargo.toml ${V:+--verbose} -- --hashes-per-tick 10
;;
test-local-cluster)
_ "$cargo" stable build --release --bins ${V:+--verbose}
_ "$cargo" stable test --release --package solana-local-cluster --test local_cluster ${V:+--verbose} -- --nocapture --test-threads=1
if need_to_generate_test_result; then
_ "$cargo" stable test --release --package solana-local-cluster --test local_cluster ${V:+--verbose} -- --test-threads=1 -Z unstable-options --format json --report-time | tee results.json
exit_if_error "${PIPESTATUS[0]}"
else
_ "$cargo" stable test --release --package solana-local-cluster --test local_cluster ${V:+--verbose} -- --nocapture --test-threads=1
fi
exit 0
;;
test-local-cluster-flakey)
_ "$cargo" stable build --release --bins ${V:+--verbose}
_ "$cargo" stable test --release --package solana-local-cluster --test local_cluster_flakey ${V:+--verbose} -- --nocapture --test-threads=1
if need_to_generate_test_result; then
_ "$cargo" stable test --release --package solana-local-cluster --test local_cluster_flakey ${V:+--verbose} -- --test-threads=1 -Z unstable-options --format json --report-time | tee results.json
exit_if_error "${PIPESTATUS[0]}"
else
_ "$cargo" stable test --release --package solana-local-cluster --test local_cluster_flakey ${V:+--verbose} -- --nocapture --test-threads=1
fi
exit 0
;;
test-local-cluster-slow-1)
_ "$cargo" stable build --release --bins ${V:+--verbose}
_ "$cargo" stable test --release --package solana-local-cluster --test local_cluster_slow_1 ${V:+--verbose} -- --nocapture --test-threads=1
if need_to_generate_test_result; then
_ "$cargo" stable test --release --package solana-local-cluster --test local_cluster_slow_1 ${V:+--verbose} -- --test-threads=1 -Z unstable-options --format json --report-time | tee results.json
exit_if_error "${PIPESTATUS[0]}"
else
_ "$cargo" stable test --release --package solana-local-cluster --test local_cluster_slow_1 ${V:+--verbose} -- --nocapture --test-threads=1
fi
exit 0
;;
test-local-cluster-slow-2)
_ "$cargo" stable build --release --bins ${V:+--verbose}
_ "$cargo" stable test --release --package solana-local-cluster --test local_cluster_slow_2 ${V:+--verbose} -- --nocapture --test-threads=1
if need_to_generate_test_result; then
_ "$cargo" stable test --release --package solana-local-cluster --test local_cluster_slow_2 ${V:+--verbose} -- --test-threads=1 -Z unstable-options --format json --report-time | tee results.json
exit_if_error "${PIPESTATUS[0]}"
else
_ "$cargo" stable test --release --package solana-local-cluster --test local_cluster_slow_2 ${V:+--verbose} -- --nocapture --test-threads=1
fi
exit 0
;;
test-wasm)
Expand Down

0 comments on commit 5a42187

Please sign in to comment.