Skip to content

Commit f3bf719

Browse files
committed
Bench CI workflow
1 parent 0b0fdda commit f3bf719

File tree

1 file changed

+92
-0
lines changed

1 file changed

+92
-0
lines changed

.github/workflows/bench.yml

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
name: "Benchmark"
2+
3+
on:
4+
pull_request:
5+
paths-ignore:
6+
- 'compiler/**'
7+
- 'apigen/**'
8+
- 'changelog-generator/**'
9+
- 'issue-bot/**'
10+
push:
11+
branches:
12+
- "2.1.x"
13+
paths-ignore:
14+
- 'compiler/**'
15+
- 'apigen/**'
16+
- 'changelog-generator/**'
17+
- 'issue-bot/**'
18+
19+
concurrency:
20+
group: bench-${{ github.head_ref || github.run_id }}
21+
cancel-in-progress: true
22+
23+
jobs:
24+
baseline:
25+
name: "Baseline"
26+
runs-on: ubuntu-latest
27+
timeout-minutes: 60
28+
29+
steps:
30+
- name: Harden the runner (Audit all outbound calls)
31+
uses: step-security/harden-runner@5ef0c079ce82195b2a36a210272d6b661572d83e # v2.14.2
32+
with:
33+
egress-policy: audit
34+
35+
- name: "Checkout base branch"
36+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
37+
38+
- name: "Install PHP"
39+
uses: "shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1" # v2
40+
with:
41+
coverage: "none"
42+
php-version: "8.5"
43+
tools: pecl
44+
extensions: ds,mbstring
45+
ini-file: development
46+
ini-values: memory_limit=-1
47+
48+
- uses: "ramsey/composer-install@3cf229dc2919194e9e36783941438d17239e8520" # v3
49+
50+
- name: "Run phpbench baseline"
51+
run: "vendor/bin/phpbench run --dump-file=tests/bench/storage/baseline.xml --tag=baseline"
52+
53+
- name: "Upload baseline artifact"
54+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
55+
with:
56+
name: phpbench-baseline
57+
path: tests/bench/storage/baseline.xml
58+
59+
test:
60+
name: "Test"
61+
runs-on: ubuntu-latest
62+
timeout-minutes: 60
63+
64+
steps:
65+
- name: Harden the runner (Audit all outbound calls)
66+
uses: step-security/harden-runner@5ef0c079ce82195b2a36a210272d6b661572d83e # v2.14.2
67+
with:
68+
egress-policy: audit
69+
70+
- name: "Checkout"
71+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
72+
73+
- name: "Install PHP"
74+
uses: "shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1" # v2
75+
with:
76+
coverage: "none"
77+
php-version: "8.5"
78+
tools: pecl
79+
extensions: ds,mbstring
80+
ini-file: development
81+
ini-values: memory_limit=-1
82+
83+
- uses: "ramsey/composer-install@3cf229dc2919194e9e36783941438d17239e8520" # v3
84+
85+
- name: "Download baseline artifact"
86+
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
87+
with:
88+
name: phpbench-baseline
89+
path: tests/bench/storage
90+
91+
- name: "Run phpbench test"
92+
run: "vendor/bin/phpbench run --file=tests/bench/storage/baseline.xml --ref=baseline --report=aggregate --assert=\"variant.mode <= baseline.mode +/- 5%\""

0 commit comments

Comments
 (0)