Skip to content

Commit

Permalink
feat: Add 15m timeout for CI benchmarks (#157)
Browse files Browse the repository at this point in the history
* feat: Add 15m timeout for CI benchmarks

* feat: Add Slack alert for CI benchmarks (#158)

* feat: Add Slack alert for CI benchmarks

* Update continuous-benchmark.yaml

* fix: Use quotes on func name to declare they arent commands

* feat: Separate failure reasons

* fix: YAML error
  • Loading branch information
KShivendu authored Jun 11, 2024
1 parent 884fda3 commit b66b4c5
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 2 deletions.
32 changes: 30 additions & 2 deletions .github/workflows/continuous-benchmark.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ jobs:
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Benches
id: benches
run: |
export HCLOUD_TOKEN=${{ secrets.HCLOUD_TOKEN }}
export POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }}
Expand All @@ -28,15 +29,42 @@ jobs:
DATASET_TO_ENGINE["h-and-m-2048-angular-filters"]="qdrant-continuous-benchmark"
DATASET_TO_ENGINE["dbpedia-openai-100K-1536-angular"]="qdrant-bq-continuous-benchmark"
set +e
for dataset in "${!DATASET_TO_ENGINE[@]}"; do
export ENGINE_NAME=${DATASET_TO_ENGINE[$dataset]}
export DATASETS=$dataset
# Benchmark the dev branch:
export QDRANT_VERSION=ghcr/dev
bash -x tools/run_ci.sh
timeout 15m bash -x tools/run_ci.sh
# Benchmark the master branch:
export QDRANT_VERSION=docker/master
bash -x tools/run_ci.sh
timeout 15m bash -x tools/run_ci.sh
done
set -e
- name: Fail job if any of the benches failed
if: steps.benches.outputs.failed == 'error' || steps.benches.outputs.failed == 'timeout'
run: exit 1
- name: Send Notification
if: failure() || cancelled()
uses: slackapi/[email protected]
with:
payload: |
{
"text": "CI benchmarks run status: ${{ job.status }}",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "CI benchmarks failed because of ${{ steps.benches.outputs.failed }}.\nView the results <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|here>"
}
}
]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.CI_ALERTS_CHANNEL_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
13 changes: 13 additions & 0 deletions tools/run_ci.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,19 @@

set -e

function handle_error() {
echo "Error occured ${QDRANT_VERSION@A} ${ENGINE_NAME@A} ${DATASETS@A}"
echo "{failed}={error}" >> $GITHUB_OUTPUT
}

function handle_term() {
echo "Timeout occured ${QDRANT_VERSION@A} ${ENGINE_NAME@A} ${DATASETS@A}"
echo "{failed}={timeout}" >> $GITHUB_OUTPUT
}

trap 'handle_err' ERR
trap 'handle_term' TERM

# Script, that runs benchmark within the GitHub Actions CI environment

SCRIPT=$(realpath "$0")
Expand Down

0 comments on commit b66b4c5

Please sign in to comment.