# Generated from xtask::workflows::compare_perf
# Rebuild with `cargo xtask workflows`.
name: compare_perf
on:
  workflow_dispatch:
    inputs:
      head:
        description: head
        required: true
        type: string
      base:
        description: base
        required: true
        type: string
jobs:
  run_perf:
    runs-on: namespace-profile-16x32-ubuntu-2204
    steps:
    - name: steps::checkout_repo
      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
      with:
        clean: false
    - name: compare_perf::run_perf::echo_inputs
      run: echo ${{ inputs.base }} ${{ inputs.head }}
      shell: bash -euxo pipefail {0}
    - name: git checkout ${{ inputs.base }}
      run: git checkout {ref_name}
    - name: compare_perf::run_perf::cargo_perf_test
      run: cargo perf-test -p gpui -- --json=${{ inputs.base }}
      shell: bash -euxo pipefail {0}
    - name: git checkout ${{ inputs.head }}
      run: git checkout {ref_name}
    - name: compare_perf::run_perf::cargo_perf_test
      run: cargo perf-test -p gpui -- --json=${{ inputs.head }}
      shell: bash -euxo pipefail {0}
    - name: compare_perf::run_perf::compare_runs
      run: cargo perf-compare ${{ inputs.base }} ${{ inputs.head }} --save=results.md
      shell: bash -euxo pipefail {0}
    - name: '@actions/upload-artifact results.md'
      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
      with:
        name: results.md
        path: results.md
