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}