Files
MCPTrace/.github/workflows/windows-memory-benchmark.yml

51 lines
1.8 KiB
YAML

name: Windows memory benchmark
on:
workflow_dispatch:
permissions:
contents: read
concurrency:
group: windows-memory-benchmark-${{ github.ref }}
cancel-in-progress: false
jobs:
capture:
name: Capture ${{ matrix.replica }}
runs-on: windows-2022
timeout-minutes: 25
strategy:
fail-fast: false
max-parallel: 3
matrix:
replica: [1, 2, 3]
env:
PYTHONUTF8: '1'
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
with:
python-version: '3.12'
- name: Install plugin and pinned SDK
run: python -m pip install -e . -r validation/windows_positive/requirements.txt
- name: Acquire real RAM and benchmark three scans
shell: pwsh
run: |
python validation/windows_positive/run.py --workdir "$env:RUNNER_TEMP/mcp-benchmark-work" --reportdir "$env:RUNNER_TEMP/mcp-benchmark-report" --tool-calls 64 --scan-repeats 3 --report-scan-limits
- name: Extract aggregate measurements only
if: always()
shell: pwsh
run: |
python validation/windows_positive/benchmark.py summarize --reportdir "$env:RUNNER_TEMP/mcp-benchmark-report" --replica ${{ matrix.replica }} --output "$env:RUNNER_TEMP/benchmark-${{ matrix.replica }}.json"
- name: Upload aggregate measurements only
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: windows-benchmark-${{ github.run_id }}-${{ matrix.replica }}
path: ${{ runner.temp }}/benchmark-${{ matrix.replica }}.json
if-no-files-found: warn
retention-days: 30