4
4
- 1.x
5
5
pull_request :
6
6
name : Qa workflow
7
+ env :
8
+ phiveGPGKeys : 4AA394086372C20A,D2CCAC42F6295E7D,E82B2FB314E9906E,8A03EA3B385DBAA1
7
9
jobs :
8
- setup :
10
+ composer-check :
9
11
runs-on : ubuntu-latest
10
12
steps :
11
13
- uses : actions/checkout@v2
12
14
13
- - name : Restore/cache tools folder
14
- uses : actions/cache@v2
15
- with :
16
- path : tools
17
- key : all-tools-${{ github.sha }}
18
- restore-keys : |
19
- all-tools-${{ github.sha }}-
20
- all-tools-
21
-
22
15
- name : composer
23
16
uses : docker://composer
24
17
env :
33
26
with :
34
27
args : check --config-file ./composer-require-config.json composer.json
35
28
36
- - name : Install phive
37
- run : make install-phive
38
-
39
- - name : Install PHAR dependencies
40
- run : tools/phive.phar --no-progress install --copy --trust-gpg-keys 4AA394086372C20A,8A03EA3B385DBAA1 --force-accept-unsigned
41
-
42
29
phpunit-with-coverage :
43
30
runs-on : ubuntu-latest
44
31
name : Unit tests
45
- needs : setup
46
32
steps :
47
33
- uses : actions/checkout@v2
48
34
@@ -52,27 +38,17 @@ jobs:
52
38
php-version : 7.2
53
39
ini-values : memory_limit=2G, display_errors=On, error_reporting=-1
54
40
coverage : pcov
41
+ tools : phive
55
42
56
- - name : Restore/cache tools folder
57
- uses : actions/cache@v2
58
- with :
59
- path : tools
60
- key : all-tools-${{ github.sha }}
61
- restore-keys : |
62
- all-tools-${{ github.sha }}-
63
- all-tools-
43
+ - name : Install PHAR dependencies
44
+ env :
45
+ GITHUB_AUTH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
46
+ run : phive --no-progress install --copy --trust-gpg-keys ${{ env.phiveGPGKeys }} --force-accept-unsigned
64
47
65
48
- name : Get composer cache directory
66
49
id : composer-cache
67
50
run : echo "::set-output name=dir::$(composer config cache-files-dir)"
68
51
69
- - name : Cache composer dependencies
70
- uses : actions/cache@v2
71
- with :
72
- path : ${{ steps.composer-cache.outputs.dir }}
73
- key : ubuntu-latest-composer-${{ hashFiles('**/composer.lock') }}
74
- restore-keys : ubuntu-latest-composer-
75
-
76
52
- name : Install Composer dependencies
77
53
run : |
78
54
composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader
@@ -81,70 +57,88 @@ jobs:
81
57
run : php tools/phpunit
82
58
83
59
phpunit :
60
+ name : Unit tests for PHP version ${{ matrix.php-versions }} on ${{ matrix.operating-system }}
84
61
runs-on : ${{ matrix.operating-system }}
62
+ continue-on-error : ${{ matrix.php-versions == '8.1' }}
85
63
strategy :
86
64
matrix :
87
65
operating-system :
88
66
- ubuntu-latest
89
67
- windows-latest
90
68
- macOS-latest
91
- php-versions : ['7.2', '7.3', '7.4', '8.0']
92
- name : Unit tests for PHP version ${{ matrix.php-versions }} on ${{ matrix.operating-system }}
69
+ php-versions : ['7.2', '7.3', '7.4', '8.0', '8.1']
70
+ env :
71
+ extensions : mbstring
72
+ key : cache-v1 # can be any string, change to clear the extension cache.
73
+
93
74
needs :
94
- - setup
95
75
- phpunit-with-coverage
76
+
96
77
steps :
97
78
- uses : actions/checkout@v2
98
79
99
- - name : Restore/cache vendor folder
100
- uses : actions/cache@v2
80
+ - name : Setup cache environment
81
+ id : cache-env
82
+ uses : shivammathur/cache-extensions@v1
101
83
with :
102
- path : vendor
103
- key : all-build-${{ hashFiles('**/composer.lock') }}
104
- restore-keys : |
105
- all-build-${{ hashFiles('**/composer.lock') }}
106
- all-build-
84
+ php-version : ${{ matrix.php-versions }}
85
+ extensions : ${{ env.extensions }}
86
+ key : ${{ env.key }}
107
87
108
- - name : Restore/cache tools folder
88
+ - name : Cache extensions
109
89
uses : actions/cache@v2
110
90
with :
111
- path : tools
112
- key : all-tools-${{ github.sha }}
113
- restore-keys : |
114
- all-tools-${{ github.sha }}-
115
- all-tools-
91
+ path : ${{ steps.cache-env.outputs.dir }}
92
+ key : ${{ steps.cache-env.outputs.key }}
116
93
117
94
- name : Setup PHP
118
95
uses : shivammathur/setup-php@v2
119
96
with :
120
97
php-version : ${{ matrix.php-versions }}
98
+ extensions : ${{ env.extensions }}
121
99
ini-values : memory_limit=2G, display_errors=On, error_reporting=-1
122
- coverage : none
100
+ tools : phive
101
+
102
+ - name : Install PHAR dependencies
103
+ env :
104
+ GITHUB_AUTH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
105
+ run : phive --no-progress install --copy --trust-gpg-keys ${{ env.phiveGPGKeys }} --force-accept-unsigned
106
+
107
+ - name : Install phpunit 8 for php 7.2
108
+ if : matrix.php-versions == '7.2'
109
+ env :
110
+ GITHUB_AUTH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
111
+ run : phive --no-progress install --copy --trust-gpg-keys ${{ env.phiveGPGKeys }} phpunit:^8.5
123
112
124
113
- name : Get composer cache directory
125
114
id : composer-cache
126
115
run : echo "::set-output name=dir::$(composer config cache-files-dir)"
127
116
128
- - name : Cache composer dependencies
117
+ - name : Cache dependencies
129
118
uses : actions/cache@v2
130
119
with :
131
120
path : ${{ steps.composer-cache.outputs.dir }}
132
121
key : ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
133
122
restore-keys : ${{ runner.os }}-composer-
134
123
135
- - name : Install Composer dependencies
136
- run : |
137
- composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader
124
+ - name : Install dependencies
125
+ run : composer install --no-interaction --prefer-dist --optimize-autoloader
138
126
139
127
- name : Run PHPUnit
140
128
continue-on-error : true
141
129
run : php tools/phpunit
142
130
143
131
codestyle :
144
132
runs-on : ubuntu-latest
145
- needs : [setup, phpunit]
133
+ needs : [phpunit]
146
134
steps :
147
135
- uses : actions/checkout@v2
136
+ - name : composer
137
+ uses : docker://composer
138
+ env :
139
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
140
+ with :
141
+ args : install --no-interaction --prefer-dist --optimize-autoloader
148
142
- name : Restore/cache vendor folder
149
143
uses : actions/cache@v2
150
144
with :
@@ -160,64 +154,93 @@ jobs:
160
154
161
155
phpstan :
162
156
runs-on : ubuntu-latest
163
- needs : [setup, phpunit]
157
+ needs : [phpunit]
164
158
steps :
165
159
- uses : actions/checkout@v2
166
- - name : Restore/cache vendor folder
167
- uses : actions/cache@v2
160
+ - name : composer
161
+ uses : docker://composer
162
+ env :
163
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
168
164
with :
169
- path : vendor
170
- key : all-build-${{ hashFiles('**/composer.lock') }}
171
- restore-keys : |
172
- all-build-${{ hashFiles('**/composer.lock') }}
173
- all-build-
165
+ args : install --no-interaction --prefer-dist --optimize-autoloader
166
+
174
167
- name : PHPStan
175
- uses : phpDocumentor/phpstan-ga@master
168
+ uses : phpDocumentor/phpstan-ga@0.12.9
176
169
env :
177
170
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
178
171
with :
179
172
args : analyse src --configuration phpstan.neon
180
173
181
174
psalm :
182
- runs-on : ubuntu-latest
183
- needs : [setup, phpunit]
175
+ name : Psalm
176
+ runs-on : ${{ matrix.operating-system }}
177
+ strategy :
178
+ matrix :
179
+ operating-system :
180
+ - ubuntu-latest
181
+ php-versions : ['7.3']
182
+ env :
183
+ extensions : mbstring
184
+ key : cache-v1 # can be any string, change to clear the extension cache.
185
+
186
+ needs :
187
+ - phpunit
188
+
184
189
steps :
185
190
- uses : actions/checkout@v2
186
191
192
+ - name : Setup cache environment
193
+ id : cache-env
194
+ uses : shivammathur/cache-extensions@v1
195
+ with :
196
+ php-version : ${{ matrix.php-versions }}
197
+ extensions : ${{ env.extensions }}
198
+ key : ${{ env.key }}
199
+
200
+ - name : Cache extensions
201
+ uses : actions/cache@v2
202
+ with :
203
+ path : ${{ steps.cache-env.outputs.dir }}
204
+ key : ${{ steps.cache-env.outputs.key }}
205
+
187
206
- name : Setup PHP
188
207
uses : shivammathur/setup-php@v2
189
208
with :
190
- php-version : 7.2
209
+ php-version : ${{ matrix.php-versions }}
210
+ extensions : ${{ env.extensions }}
191
211
ini-values : memory_limit=2G, display_errors=On, error_reporting=-1
192
- tools : psalm
193
- coverage : none
194
212
195
213
- name : Get composer cache directory
196
214
id : composer-cache
197
215
run : echo "::set-output name=dir::$(composer config cache-files-dir)"
198
216
199
- - name : Cache composer dependencies
217
+ - name : Cache dependencies
200
218
uses : actions/cache@v2
201
219
with :
202
220
path : ${{ steps.composer-cache.outputs.dir }}
203
221
key : ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
204
222
restore-keys : ${{ runner.os }}-composer-
205
223
206
- - name : Install Composer dependencies
207
- run : |
208
- composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader
224
+ - name : Install dependencies
225
+ run : composer install --no-interaction --prefer-dist --optimize-autoloader
209
226
210
- - name : Psalm
211
- run : psalm --output-format=github
227
+ - name : Run psalm
228
+ run : vendor/bin/ psalm.phar
212
229
213
230
bc_check :
214
231
name : BC Check
215
232
runs-on : ubuntu-latest
216
- needs : [setup, phpunit]
233
+ needs : [phpunit]
217
234
steps :
218
235
- uses : actions/checkout@v2
219
236
- name : fetch tags
220
237
run : git fetch --depth=1 origin +refs/tags/*:refs/tags/*
238
+ - name : composer
239
+ uses : docker://composer
240
+ env :
241
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
242
+ with :
243
+ args : install --no-interaction --prefer-dist --optimize-autoloader
221
244
- name : Restore/cache vendor folder
222
245
uses : actions/cache@v2
223
246
with :
@@ -232,7 +255,7 @@ jobs:
232
255
profile :
233
256
runs-on : ubuntu-latest
234
257
name : profile
235
- needs : [setup, phpunit]
258
+ needs : [phpunit]
236
259
services :
237
260
blackfire :
238
261
image : blackfire/blackfire
0 commit comments