compare_perf.yml

 1# Generated from xtask::workflows::compare_perf
 2# Rebuild with `cargo xtask workflows`.
 3name: compare_perf
 4on:
 5  workflow_dispatch:
 6    inputs:
 7      head:
 8        description: head
 9        required: true
10        type: string
11      base:
12        description: base
13        required: true
14        type: string
15      crate_name:
16        description: crate_name
17        type: string
18        default: ''
19jobs:
20  run_perf:
21    runs-on: namespace-profile-16x32-ubuntu-2204
22    steps:
23    - name: steps::checkout_repo
24      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
25      with:
26        clean: false
27    - name: steps::setup_cargo_config
28      run: |
29        mkdir -p ./../.cargo
30        cp ./.cargo/ci-config.toml ./../.cargo/config.toml
31    - name: steps::setup_linux
32      run: ./script/linux
33    - name: steps::install_mold
34      run: ./script/install-mold
35    - name: steps::download_wasi_sdk
36      run: ./script/download-wasi-sdk
37    - name: compare_perf::run_perf::install_hyperfine
38      uses: taiki-e/install-action@hyperfine
39    - name: steps::git_checkout
40      run: git fetch origin "$REF_NAME" && git checkout "$REF_NAME"
41      env:
42        REF_NAME: ${{ inputs.base }}
43    - name: compare_perf::run_perf::cargo_perf_test
44      run: |2-
45
46                    if [ -n "$CRATE_NAME" ]; then
47                        cargo perf-test -p "$CRATE_NAME" -- --json="$REF_NAME";
48                    else
49                        cargo perf-test -p vim -- --json="$REF_NAME";
50                    fi
51      env:
52        REF_NAME: ${{ inputs.base }}
53        CRATE_NAME: ${{ inputs.crate_name }}
54    - name: steps::git_checkout
55      run: git fetch origin "$REF_NAME" && git checkout "$REF_NAME"
56      env:
57        REF_NAME: ${{ inputs.head }}
58    - name: compare_perf::run_perf::cargo_perf_test
59      run: |2-
60
61                    if [ -n "$CRATE_NAME" ]; then
62                        cargo perf-test -p "$CRATE_NAME" -- --json="$REF_NAME";
63                    else
64                        cargo perf-test -p vim -- --json="$REF_NAME";
65                    fi
66      env:
67        REF_NAME: ${{ inputs.head }}
68        CRATE_NAME: ${{ inputs.crate_name }}
69    - name: compare_perf::run_perf::compare_runs
70      run: cargo perf-compare --save=results.md "$BASE" "$HEAD"
71      env:
72        BASE: ${{ inputs.base }}
73        HEAD: ${{ inputs.head }}
74    - name: '@actions/upload-artifact results.md'
75      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
76      with:
77        name: results.md
78        path: results.md
79        if-no-files-found: error
80    - name: steps::cleanup_cargo_config
81      if: always()
82      run: |
83        rm -rf ./../.cargo
84defaults:
85  run:
86    shell: bash -euxo pipefail {0}