name: Bench (manual)

on:
  workflow_dispatch:
    inputs:
      workload:
        description: "The path to the workloads to execute (workloads/...)"
        required: true
        default: "workloads/movies.json"

env:
  WORKLOAD_NAME: ${{ github.event.inputs.workload }}

jobs:
  benchmarks:
    name: Run and upload benchmarks
    runs-on: benchmarks
    timeout-minutes: 180 # 3h
    steps:
      - uses: actions/checkout@v3
      - uses: dtolnay/rust-toolchain@1.85
        with:
          profile: minimal

      - name: Run benchmarks - workload ${WORKLOAD_NAME} - branch ${{ github.ref }} - commit ${{ github.sha }}
        run: |
          cargo xtask bench --api-key "${{ secrets.BENCHMARK_API_KEY }}" --dashboard-url "${{ vars.BENCHMARK_DASHBOARD_URL }}" --reason "Manual [Run #${{ github.run_id }}](https://github.com/meilisearch/meilisearch/actions/runs/${{ github.run_id }})" -- ${WORKLOAD_NAME}
