Repository navigation
154 lines (136 loc) · 5.47 KB
/
Copy pathtests.yml
File metadata and controls
154 lines (136 loc) · 5.47 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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
name: Run tests
permissions:
contents: read
on:
push:
pull_request:
types: [ opened, synchronize, reopened ]
jobs:
test-php:
name: Test on PHP ${{ matrix.php-version }} and ${{ matrix.os }}
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.experimental }}
strategy:
matrix:
php-version: [ '8.2', '8.3', '8.4', '8.5' ]
os: [ ubuntu-latest ]
experimental: [ false ]
composer-options: [ '' ]
include:
- { php-version: '8.6', experimental: true, os: ubuntu-latest, composer-options: '--ignore-platform-req=php+' }
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
# Fetch some commits for Scrutinizer coverage upload
fetch-depth: 15
- name: Set up PHP ${{ matrix.php-version }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
# phar, json and curl are used by composer
# json is used by testing code
# dom, json, mbstring, libxml, xml, xmlwriter are used by phpunit
# tokenizer, xmlwriter and simplexml are used by phpcs
# ctype is used by Psalm
extensions: none, mbstring, phar, json, curl, tokenizer, xml, xmlwriter, simplexml, libxml, dom, ctype
coverage: xdebug
- name: Install Composer dependencies
uses: ramsey/composer-install@v4
with:
composer-options: ${{ matrix.composer-options }}
- name: Run PHP tests
run: composer run phpunit
- name: Send coverage
uses: codecov/codecov-action@v6
# Do not run this step on forked versions of the main repository (example: contributor forks)
if: github.repository == 'phpmyadmin/sql-parser'
with:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
flags: unit-${{ matrix.php-version }}-${{ matrix.os }}
name: phpunit-${{ matrix.php-version }}-${{ matrix.os }}
report_type: coverage
- name: Upload test results
uses: codecov/codecov-action@v6
# Do not run this step on forked versions of the main repository (example: contributor forks)
if: ${{ github.repository == 'phpmyadmin/sql-parser' && !cancelled() }}
with:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
flags: unit-${{ matrix.php-version }}-${{ matrix.os }}
name: phpunit-${{ matrix.php-version }}-${{ matrix.os }}
report_type: test_results
- name: Send coverage to Scrutinizer
uses: sudo-bot/action-scrutinizer@latest
# Do not run this step on forked versions of the main repository (example: contributor forks)
if: github.repository == 'phpmyadmin/sql-parser'
with:
cli-args: "--format=php-clover build/logs/clover.xml --revision=${{ github.event.pull_request.head.sha || github.sha }}"
test-php-with-newer-phpunit:
name: Test on PHP ${{ matrix.php }} with PHPUnit ${{ matrix.phpunit }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- {php: '8.2', phpunit: '11'}
- {php: '8.3', phpunit: '12'}
- {php: '8.4', phpunit: '13'}
- {php: '8.5', phpunit: '13'}
steps:
- name: Checkout code
uses: actions/checkout@v7
with:
persist-credentials: false
- name: Set up PHP ${{ matrix.php }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: none
- name: Update composer.json
shell: bash
env:
PHPUNIT_VERSION: ${{ matrix.phpunit }}
run: |
composer remove --dev vimeo/psalm psalm/plugin-phpunit --no-update --no-interaction --ansi
composer require --dev phpunit/phpunit:^"$PHPUNIT_VERSION" --no-update --no-interaction --ansi
- name: Install Composer dependencies
uses: ramsey/composer-install@v4
- name: Run PHP tests
run: vendor/bin/phpunit --no-coverage --no-logging --display-all-issues
php-benchmark:
name: Benchmark on PHP ${{ matrix.php-version }} and ${{ matrix.os }}
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.experimental }}
strategy:
matrix:
php-version: [ '8.2', '8.3', '8.4', '8.5' ]
os: [ ubuntu-latest ]
experimental: [ false ]
composer-options: [ '' ]
include:
- { php-version: '8.6', experimental: true, os: ubuntu-latest, composer-options: '--ignore-platform-req=php+' }
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
# Fetch some commits for Scrutinizer coverage upload
fetch-depth: 15
- name: Set up PHP ${{ matrix.php-version }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
# phar, json and curl are used by composer
# json is used by testing code
# dom, json, mbstring, libxml, xml, xmlwriter are used by phpunit
# tokenizer, xmlwriter and simplexml are used by phpcs
# ctype is used by Psalm
extensions: none, mbstring, phar, json, curl, tokenizer, xml, xmlwriter, simplexml, libxml, dom, ctype
coverage: xdebug
- name: Install Composer dependencies
uses: ramsey/composer-install@v4
with:
composer-options: ${{ matrix.composer-options }}
- name: Run benchmarks
run: composer run phpbench