| 
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