-
-
Notifications
You must be signed in to change notification settings - Fork 33
130 lines (125 loc) · 3.43 KB
/
Copy pathtests.yml
File metadata and controls
130 lines (125 loc) · 3.43 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
name: Tests, Coding Standards
on:
push:
branches:
- master
- v3
pull_request:
jobs:
test-unit:
runs-on: ubuntu-latest
strategy:
matrix:
php-versions: ['8.5', '7.4']
steps:
- uses: actions/checkout@v7
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, intl
ini-values: post_max_size=256M, short_open_tag=On
tools: composer
- name: Install
run: |
composer install
- name: Run tests
run: |
composer test:unit
test-e2e:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- php: '8.5'
wordpress: 'nightly'
- php: '8.5'
wordpress: 'latest'
- php: '8.5'
wordpress: '7.0'
- php: '8.4'
wordpress: '6.9'
- php: '8.3'
wordpress: '6.8'
- php: '8.2'
wordpress: '6.7'
- php: '8.1'
wordpress: '6.6'
- php: '8.0'
wordpress: '6.0'
- php: '7.4'
wordpress: '5.6'
steps:
- uses: actions/checkout@v7
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '22'
cache: 'npm'
- name: Install npm dependencies
run: npm ci
- name: Install Playwright browsers
run: npx playwright install chromium --with-deps
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
tools: composer
- name: Install Composer dependencies
run: composer install --no-dev --optimize-autoloader
- name: Configure wp-env for matrix
run: |
case "${{ matrix.wordpress }}" in
nightly) CORE="WordPress/WordPress" ;;
latest) CORE="https://wordpress.org/latest.zip" ;;
*) CORE="https://wordpress.org/wordpress-${{ matrix.wordpress }}.zip" ;;
esac
echo "{\"core\":\"${CORE}\",\"phpVersion\":\"${{ matrix.php }}\"}" | tee .wp-env.override.json
- name: Start wp-env
run: npm run env:start
- name: Run E2E tests
run: npm run test:e2e
- name: Upload test report on failure
if: failure()
uses: actions/upload-artifact@v7
with:
name: playwright-report-php${{ matrix.php }}-wp${{ matrix.wordpress }}
path: tests/e2e/report/
retention-days: 7
- name: Stop wp-env
if: always()
run: npm run env:stop
phpstan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.5'
tools: composer
- name: Install Composer dependencies
run: composer install --ignore-platform-req=php
- name: Run PHPStan
run: composer phpstan
quality:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.5'
tools: composer
- name: Run code style checks for CSS, JavaScript and PHP
run: |
composer install --ignore-platform-req=php
./vendor/bin/phpcs --config-set ignore_warnings_on_exit 1
composer cs
spelling:
name: Typos
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: crate-ci/typos@master