| name: Run benchmarks | |
| on: | |
| push: | |
| paths: | |
| - "src/backend/base/**" | |
| - "src/backend/tests/performance/**" | |
| branches: | |
| - "main" # or "master" | |
| pull_request: | |
| paths: | |
| - "src/backend/base/**" | |
| - "src/backend/tests/performance/**" | |
| - "!src/backend/base/langflow/components/**" | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| codspeed: | |
| name: Run benchmarks | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: | |
| - "3.12" | |
| steps: | |
| - name: Check out the code at a specific ref | |
| uses: actions/checkout@v4 | |
| - name: "Setup Environment" | |
| uses: ./.github/actions/setup-uv | |
| - name: Run benchmarks | |
| uses: CodSpeedHQ/action@v3 | |
| with: | |
| token: ${{ secrets.CODSPEED_TOKEN }} | |
| run: | | |
| uv run pytest src/backend/tests \ | |
| --ignore=src/backend/tests/integration \ | |
| --codspeed \ | |
| -m "not api_key_required" \ | |
| -n auto | |
| - name: Minimize uv cache | |
| run: uv cache prune --ci | |