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