Repository navigation
49 lines (45 loc) · 1.59 KB
/
Copy pathcodspeed.yml
File metadata and controls
49 lines (45 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
name: CodSpeed Benchmarks
on:
schedule:
- cron: '0 9 * * 1' # Every Monday at 9am UTC
pull_request:
types: [labeled]
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
benchmarks:
name: Run benchmarks
runs-on: codspeed-macro
if: |
github.event_name == 'schedule' ||
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'benchmark'))
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
persist-credentials: false
- name: Install Hatch
uses: pypa/hatch@f647ed70d49adb885f53a27d1c7f5bdaeacf2c60
with:
version: '1.16.5'
# No interpreter is set up in this job on purpose. Benchmarks are only comparable
# across runs if the interpreter underneath them does not move: adding a pinned
# Python here measured a uniform ~13% slowdown on every benchmark, because hatch
# then built the environment on that interpreter instead of the runner's own.
- name: Install just
uses: extractions/setup-crate@7577c1bdf2d95e6d65d532788f35ed79d4b1dda2 # v2.0.1
with:
repo: casey/just
version: 1.58.0
- name: Run the benchmarks
uses: CodSpeedHQ/action@821a40cd6c80e3cfe387caf55668287addd808da # v5.5.0
env:
ZARR_BENCHMARK_CLEAR_CACHE: '1'
with:
mode: walltime
run: HATCH_ENV=test.py3.12-minimal just benchmark-codspeed