|
19 | 19 | with:
|
20 | 20 | previewer-server: "https://pandas.pydata.org/preview"
|
21 | 21 | artifact-job: "Doc Build and Upload"
|
22 |
| - asv_run: |
23 |
| - runs-on: ubuntu-24.04 |
24 |
| - # TODO: Support more benchmarking options later, against different branches, against self, etc |
25 |
| - if: github.event.issue.pull_request && startsWith(github.event.comment.body, '@github-actions benchmark') |
26 |
| - defaults: |
27 |
| - run: |
28 |
| - shell: bash -el {0} |
29 |
| - env: |
30 |
| - ENV_FILE: environment.yml |
31 |
| - COMMENT: ${{github.event.comment.body}} |
32 |
| - |
33 |
| - concurrency: |
34 |
| - # Set concurrency to prevent abuse(full runs are ~5.5 hours !!!) |
35 |
| - # each user can only run one concurrent benchmark bot at a time |
36 |
| - # We don't cancel in progress jobs, but if you want to benchmark multiple PRs, you're gonna have |
37 |
| - # to wait |
38 |
| - group: ${{ github.actor }}-asv |
39 |
| - cancel-in-progress: false |
40 |
| - |
41 |
| - steps: |
42 |
| - - name: Checkout |
43 |
| - uses: actions/checkout@v5 |
44 |
| - with: |
45 |
| - fetch-depth: 0 |
46 |
| - |
47 |
| - # Although asv sets up its own env, deps are still needed |
48 |
| - # during discovery process |
49 |
| - - name: Set up Conda |
50 |
| - uses: ./.github/actions/setup-conda |
51 |
| - |
52 |
| - - name: Run benchmarks |
53 |
| - id: bench |
54 |
| - continue-on-error: true # asv will exit code 1 for regressions |
55 |
| - run: | |
56 |
| - # extracting the regex, see https://stackoverflow.com/a/36798723 |
57 |
| - REGEX=$(echo "$COMMENT" | sed -n "s/^.*-b\s*\(\S*\).*$/\1/p") |
58 |
| - cd asv_bench |
59 |
| - asv check -E existing |
60 |
| - git remote add upstream https://github.com/pandas-dev/pandas.git |
61 |
| - git fetch upstream |
62 |
| - asv machine --yes |
63 |
| - asv continuous -f 1.1 -b $REGEX upstream/main HEAD |
64 |
| - echo 'BENCH_OUTPUT<<EOF' >> $GITHUB_ENV |
65 |
| - asv compare -f 1.1 upstream/main HEAD >> $GITHUB_ENV |
66 |
| - echo 'EOF' >> $GITHUB_ENV |
67 |
| - echo "REGEX=$REGEX" >> $GITHUB_ENV |
68 |
| -
|
69 |
| - - uses: actions/github-script@v8 |
70 |
| - env: |
71 |
| - BENCH_OUTPUT: ${{env.BENCH_OUTPUT}} |
72 |
| - REGEX: ${{env.REGEX}} |
73 |
| - with: |
74 |
| - script: | |
75 |
| - const ENV_VARS = process.env |
76 |
| - const run_url = `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}` |
77 |
| - github.rest.issues.createComment({ |
78 |
| - issue_number: context.issue.number, |
79 |
| - owner: context.repo.owner, |
80 |
| - repo: context.repo.repo, |
81 |
| - body: '\nBenchmarks completed. View runner logs here.' + run_url + '\nRegex used: '+ 'regex ' + ENV_VARS["REGEX"] + '\n' + ENV_VARS["BENCH_OUTPUT"] |
82 |
| - }) |
0 commit comments