Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .buildkite/pipelines/pull-request/performance-benchmark.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
steps:
- label: ":pipeline: TODO"
command: echo TODO
- label: ":pipeline: Generate steps"
command: bash .buildkite/scripts/pull-request/generate-performance-benchmark.sh | buildkite-agent pipeline upload
3 changes: 2 additions & 1 deletion .buildkite/pull-requests.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@
"set_commit_status": false,
"build_on_commit": false,
"build_on_comment": true,
"trigger_comment_regex": "^(buildkite|@elastic(search)?machine) benchmark this with (?<benchmark>\\w+)( please)?$"
"target_branch": "main",
"trigger_comment_regex": "^(buildkite|@elastic(search)?machine) benchmark this with (?<benchmark>\\S+)( please)?$"
}
]
}
38 changes: 38 additions & 0 deletions .buildkite/scripts/pull-request/generate-performance-benchmark.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#!/bin/bash

set -euo pipefail

env_id_baseline=$(python3 -c 'import uuid; print(uuid.uuid4())')
env_id_contender=$(python3 -c 'import uuid; print(uuid.uuid4())')
merge_base=$(git merge-base "${GITHUB_PR_TARGET_BRANCH}" HEAD)

buildkite-agent meta-data set pr_comment:custom-body:body \
"This build attempted two ${GITHUB_PR_COMMENT_VAR_BENCHMARK} benchmarks to evaluate performance impact of this PR."
buildkite-agent meta-data set pr_comment:custom-baseline:head \
"* Baseline: ${merge_base} (env ID ${env_id_baseline})"
buildkite-agent meta-data set pr_comment:custom-contender:head \
"* Contender: ${GITHUB_PR_TRIGGERED_SHA} (env ID ${env_id_contender})"

echo "steps:"
echo " - label: Trigger baseline benchmark"
echo " trigger: elasticsearch-performance-esbench-pr"
echo " build:"
echo " message: Baseline benchmark for PR${GITHUB_PR_NUMBER}"
echo " branch: master"
echo " env:"
echo " CONFIGURATION_NAME: ${GITHUB_PR_COMMENT_VAR_BENCHMARK}"
echo " ENV_ID: ${env_id_baseline}"
echo " REVISION: ${merge_base}"
echo " - label: Trigger contender benchmark"
echo " trigger: elasticsearch-performance-esbench-pr"
echo " build:"
echo " message: Contender benchmark for PR${GITHUB_PR_NUMBER}"
echo " branch: master"
echo " env:"
echo " CONFIGURATION_NAME: ${GITHUB_PR_COMMENT_VAR_BENCHMARK}"
echo " ENV_ID: ${env_id_contender}"
echo " ES_REPO_URL: https://github.com/${GITHUB_PR_OWNER}/${GITHUB_PR_REPO}.git"
echo " REVISION: ${GITHUB_PR_TRIGGERED_SHA}"
echo " - wait: ~"
echo " - label: Modify PR comment"
echo " 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}'))>)\""