|
2 | 2 |
|
3 | 3 | set -euo pipefail
|
4 | 4 |
|
| 5 | +# uncomment for tests |
| 6 | +#function buildkite-agent { |
| 7 | +# local command=$1 |
| 8 | +# echo "$@" |
| 9 | +# if [ "$command" == "annotate" ]; then |
| 10 | +# while read -r line; do |
| 11 | +# echo " read: $line"; |
| 12 | +# done |
| 13 | +# fi |
| 14 | +#} |
| 15 | + |
5 | 16 | env_id_baseline=$(python3 -c 'import uuid; print(uuid.uuid4())')
|
6 | 17 | env_id_contender=$(python3 -c 'import uuid; print(uuid.uuid4())')
|
7 | 18 | merge_base=$(git merge-base "${GITHUB_PR_TARGET_BRANCH}" HEAD)
|
8 | 19 |
|
| 20 | +# PR comment |
| 21 | +buildkite-agent meta-data set pr_comment:early_comment_job_id "$BUILDKITE_JOB_ID" |
9 | 22 | buildkite-agent meta-data set pr_comment:custom-body:body \
|
10 |
| - "This build attempted two ${GITHUB_PR_COMMENT_VAR_BENCHMARK} benchmarks to evaluate performance impact of this PR." |
| 23 | + "This build attempts two ${GITHUB_PR_COMMENT_VAR_BENCHMARK} benchmarks to evaluate performance impact of this PR. \ |
| 24 | +To estimate benchmark completion time inspect previous nightly runs [here](https://buildkite.com/elastic/elasticsearch-performance-esbench-nightly/builds?branch=master)." |
11 | 25 | buildkite-agent meta-data set pr_comment:custom-baseline:head \
|
12 | 26 | "* Baseline: ${merge_base} (env ID ${env_id_baseline})"
|
13 | 27 | buildkite-agent meta-data set pr_comment:custom-contender:head \
|
14 | 28 | "* Contender: ${GITHUB_PR_TRIGGERED_SHA} (env ID ${env_id_contender})"
|
15 | 29 |
|
16 |
| -cat << _EOF_ |
| 30 | +# Buildkite annotation |
| 31 | +cat << _EOF1_ | buildkite-agent annotate --context "pr-benchmark-notification" |
| 32 | + This build attempts two ${GITHUB_PR_COMMENT_VAR_BENCHMARK} benchmarks to evaluate performance impact of PR [${GITHUB_PR_NUMBER}](https://github.com/elastic/elasticsearch/pull/${GITHUB_PR_NUMBER}). |
| 33 | + To estimate benchmark completion time inspect previous nightly runs [here](https://buildkite.com/elastic/elasticsearch-performance-esbench-nightly/builds?branch=master). |
| 34 | + * Baseline: [${merge_base:0:7}](https://github.com/elastic/elasticsearch/commit/${merge_base}) (env ID ${env_id_baseline}) |
| 35 | + * Contender: [${GITHUB_PR_TRIGGERED_SHA:0:7}](https://github.com/elastic/elasticsearch/commit/${GITHUB_PR_TRIGGERED_SHA}) (env ID ${env_id_contender}) |
| 36 | +_EOF1_ |
| 37 | + |
| 38 | +cat << _EOF2_ |
17 | 39 | steps:
|
18 |
| - - label: Trigger baseline benchmark |
| 40 | + - label: Trigger baseline benchmark with ${merge_base:0:7} |
19 | 41 | trigger: elasticsearch-performance-esbench-pr
|
20 | 42 | build:
|
21 |
| - message: Baseline benchmark for PR${GITHUB_PR_NUMBER} |
| 43 | + message: Baseline benchmark for PR ${GITHUB_PR_NUMBER} with ${merge_base:0:7} |
22 | 44 | branch: master
|
23 | 45 | env:
|
24 | 46 | CONFIGURATION_NAME: ${GITHUB_PR_COMMENT_VAR_BENCHMARK}
|
25 | 47 | ENV_ID: ${env_id_baseline}
|
26 | 48 | REVISION: ${merge_base}
|
27 |
| - - label: Trigger contender benchmark |
| 49 | + - label: Trigger contender benchmark with ${GITHUB_PR_TRIGGERED_SHA:0:7} |
28 | 50 | trigger: elasticsearch-performance-esbench-pr
|
29 | 51 | build:
|
30 |
| - message: Contender benchmark for PR${GITHUB_PR_NUMBER} |
| 52 | + message: Contender benchmark for PR ${GITHUB_PR_NUMBER} with ${GITHUB_PR_TRIGGERED_SHA:0:7} |
31 | 53 | branch: master
|
32 | 54 | env:
|
33 | 55 | CONFIGURATION_NAME: ${GITHUB_PR_COMMENT_VAR_BENCHMARK}
|
34 | 56 | ENV_ID: ${env_id_contender}
|
35 | 57 | ES_REPO_URL: https://github.com/${GITHUB_PR_OWNER}/${GITHUB_PR_REPO}.git
|
36 | 58 | REVISION: ${GITHUB_PR_TRIGGERED_SHA}
|
37 | 59 | - wait: ~
|
38 |
| - - label: Modify PR comment |
39 |
| - command: buildkite-agent meta-data set pr_comment:custom-comparison:head "* [Benchmark results](<https://esbench-metrics.kb.us-east-2.aws.elastic-cloud.com:9243/app/dashboards#/view/d9079962-5866-49ef-b9f5-145f2141cd31?_a=(query:(language:kuery,query:'user-tags.env-id:${env_id_baseline} or user-tags.env-id:${env_id_contender}'))>)" |
40 |
| -_EOF_ |
| 60 | + - label: Update PR comment and Buildkite annotation |
| 61 | + command: | |
| 62 | + buildkite-agent meta-data set pr_comment:custom-body:body "This build ran two ${GITHUB_PR_COMMENT_VAR_BENCHMARK} benchmarks to evaluate performance impact of this PR." |
| 63 | + buildkite-agent meta-data set pr_comment:custom-comparison:head "* [Benchmark results](<https://esbench-metrics.kb.us-east-2.aws.elastic-cloud.com:9243/app/dashboards#/view/d9079962-5866-49ef-b9f5-145f2141cd31?_a=(query:(language:kuery,query:'user-tags.env-id:${env_id_baseline} or user-tags.env-id:${env_id_contender}'))>)" |
| 64 | + cat << _EOF3_ | buildkite-agent annotate --context "pr-benchmark-notification" |
| 65 | + This build ran two ${GITHUB_PR_COMMENT_VAR_BENCHMARK} benchmarks to evaluate performance impact of PR [${GITHUB_PR_NUMBER}](https://github.com/elastic/elasticsearch/pull/${GITHUB_PR_NUMBER}). |
| 66 | + * Baseline: [${merge_base:0:7}](https://github.com/elastic/elasticsearch/commit/${merge_base}) (env ID ${env_id_baseline}) |
| 67 | + * Contender: [${GITHUB_PR_TRIGGERED_SHA:0:7}](https://github.com/elastic/elasticsearch/commit/${GITHUB_PR_TRIGGERED_SHA}) (env ID ${env_id_contender}) |
| 68 | + * [Benchmark results](<https://esbench-metrics.kb.us-east-2.aws.elastic-cloud.com:9243/app/dashboards#/view/d9079962-5866-49ef-b9f5-145f2141cd31?_a=(query:(language:kuery,query:'user-tags.env-id:${env_id_baseline} or user-tags.env-id:${env_id_contender}'))>) |
| 69 | + _EOF3_ |
| 70 | +_EOF2_ |
0 commit comments