Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
19 changes: 16 additions & 3 deletions .github/workflows/manual-benchmark.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,16 @@ jobs:
- uses: webfactory/ssh-agent@v0.8.0
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: prepare image tag
id: prepare-tag
if: ${{ inputs.build_vector_db_image == 'true' }}
shell: bash
run: |
branch_tmp=$(git rev-parse --abbrev-ref HEAD)
branch=${branch_tmp//\//-} # replace all / with -
tag="ghcr.io/${{ github.repository_owner }}/vector-db-benchmark:${branch}"
echo "Use tag ${tag}"
echo "tag=${tag}" >> $GITHUB_OUTPUT
- name: Set up Docker Buildx
if: ${{ inputs.build_vector_db_image == 'true' }}
uses: docker/setup-buildx-action@v3
Expand All @@ -47,16 +57,18 @@ jobs:
uses: docker/login-action@v3
with:
registry: ghcr.io
username: qdrant
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build Vector DB image
if: ${{ inputs.build_vector_db_image == 'true' }}
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: ghcr.io/qdrant/vector-db-benchmark:${{ github.ref_name }}
tags: ${{ steps.prepare-tag.outputs.tag }}
provenance: false
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Benches
run: |
export HCLOUD_TOKEN=${{ secrets.HCLOUD_TOKEN }}
Expand All @@ -68,7 +80,8 @@ jobs:
export POSTGRES_TABLE=benchmark_manual
export QDRANT__FEATURE_FLAGS__ALL=${{ inputs.feature_flags_all }}
if [ "${{ inputs.build_vector_db_image }}" = "true" ]; then
export VECTOR_DB_BENCHMARK_IMAGE=ghcr.io/qdrant/vector-db-benchmark:${{ github.ref_name }}
export VECTOR_DB_BENCHMARK_IMAGE=${{ steps.prepare-tag.outputs.tag }}
export GHCR_USERNAME=${{ github.repository_owner }}
export GHCR_PASSWORD=${{ secrets.GITHUB_TOKEN }}
fi
bash -x tools/setup_ci.sh
Expand Down
3 changes: 3 additions & 0 deletions tools/run_client_script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ PRIVATE_IP_OF_THE_SERVER=$(bash "${SCRIPT_PATH}/${CLOUD_NAME}/get_private_ip.sh"

VECTOR_DB_BENCHMARK_IMAGE=${VECTOR_DB_BENCHMARK_IMAGE:-"qdrant/vector-db-benchmark:latest"}
GHCR_PASSWORD=${GHCR_PASSWORD:-""}
GHCR_USERNAME=${GHCR_USERNAME:-""}

if [[ "$EXPERIMENT_MODE" == "snapshot" ]]; then
scp "${SCRIPT_PATH}/run_experiment.sh" "${SERVER_USERNAME}@${IP_OF_THE_CLIENT}:~/run_experiment_snapshot.sh"
Expand All @@ -41,6 +42,7 @@ if [[ "$EXPERIMENT_MODE" == "snapshot" ]]; then
SNAPSHOT_URL=${SNAPSHOT_URL} \
VECTOR_DB_BENCHMARK_IMAGE=${VECTOR_DB_BENCHMARK_IMAGE} \
GHCR_PASSWORD=${GHCR_PASSWORD} \
GHCR_USERNAME=${GHCR_USERNAME} \
bash ~/run_experiment_snapshot.sh"

ssh -tt -o ServerAliveInterval=120 -o ServerAliveCountMax=10 "${SERVER_USERNAME}@${IP_OF_THE_CLIENT}" "${RUN_EXPERIMENT}"
Expand All @@ -55,6 +57,7 @@ else
EXPERIMENT_MODE=${EXPERIMENT_MODE} \
VECTOR_DB_BENCHMARK_IMAGE=${VECTOR_DB_BENCHMARK_IMAGE} \
GHCR_PASSWORD=${GHCR_PASSWORD} \
GHCR_USERNAME=${GHCR_USERNAME} \
bash ~/run_experiment.sh"

ssh -tt -o ServerAliveInterval=60 -o ServerAliveCountMax=3 "${SERVER_USERNAME}@${IP_OF_THE_CLIENT}" "${RUN_EXPERIMENT}"
Expand Down
7 changes: 4 additions & 3 deletions tools/run_experiment.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,14 @@ set -euo pipefail

VECTOR_DB_BENCHMARK_IMAGE=${VECTOR_DB_BENCHMARK_IMAGE:-"qdrant/vector-db-benchmark:latest"}
GHCR_PASSWORD=${GHCR_PASSWORD:-""}
GHCR_USERNAME=${GHCR_USERNAME:-""}

if [[ -n "${GHCR_PASSWORD}" ]] || [[ "${VECTOR_DB_BENCHMARK_IMAGE}" == ghcr.io/* ]]; then
if [[ -z "${GHCR_PASSWORD}" ]]; then
echo "GHCR_PASSWORD is required to pull images from ghcr.io"
if [[ -z "${GHCR_PASSWORD}" ]] || [[ -z "${GHCR_USERNAME}" ]]; then
echo "GHCR_PASSWORD and GHCR_USERNAME is required to pull images from ghcr.io"
exit 1
fi
echo "${GHCR_PASSWORD}" | docker login ghcr.io -u qdrant --password-stdin
echo "${GHCR_PASSWORD}" | docker login ghcr.io -u "${GHCR_USERNAME}" --password-stdin
fi

ENGINE_NAME=${ENGINE_NAME:-"qdrant-continuous-benchmark"}
Expand Down