# 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 crate_name: description: crate_name type: string default: '' jobs: run_perf: runs-on: namespace-profile-16x32-ubuntu-2204 steps: - name: steps::checkout_repo uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 with: clean: false - name: steps::setup_cargo_config run: | mkdir -p ./../.cargo cp ./.cargo/ci-config.toml ./../.cargo/config.toml - name: steps::setup_linux run: ./script/linux - name: steps::download_wasi_sdk run: ./script/download-wasi-sdk - name: compare_perf::run_perf::install_hyperfine uses: taiki-e/install-action@hyperfine - name: steps::git_checkout run: git fetch origin "$REF_NAME" && git checkout "$REF_NAME" env: REF_NAME: ${{ inputs.base }} - name: compare_perf::run_perf::cargo_perf_test run: |2- if [ -n "$CRATE_NAME" ]; then cargo perf-test -p "$CRATE_NAME" -- --json="$REF_NAME"; else cargo perf-test -p vim -- --json="$REF_NAME"; fi env: REF_NAME: ${{ inputs.base }} CRATE_NAME: ${{ inputs.crate_name }} - name: steps::git_checkout run: git fetch origin "$REF_NAME" && git checkout "$REF_NAME" env: REF_NAME: ${{ inputs.head }} - name: compare_perf::run_perf::cargo_perf_test run: |2- if [ -n "$CRATE_NAME" ]; then cargo perf-test -p "$CRATE_NAME" -- --json="$REF_NAME"; else cargo perf-test -p vim -- --json="$REF_NAME"; fi env: REF_NAME: ${{ inputs.head }} CRATE_NAME: ${{ inputs.crate_name }} - name: compare_perf::run_perf::compare_runs run: cargo perf-compare --save=results.md "$BASE" "$HEAD" env: BASE: ${{ inputs.base }} HEAD: ${{ inputs.head }} - name: '@actions/upload-artifact results.md' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 with: name: results.md path: results.md if-no-files-found: error - name: steps::cleanup_cargo_config if: always() run: | rm -rf ./../.cargo defaults: run: shell: bash -euxo pipefail {0}