@@ -2,19 +2,19 @@ name: build
2
2
on : [push, pull_request]
3
3
4
4
jobs :
5
- full-build :
6
- name : " Coding standards & coverage tests "
5
+ quality-check :
6
+ name : " Coding standards & test coverage "
7
7
runs-on : ${{ matrix.operating-system }}
8
8
strategy :
9
9
matrix :
10
10
operating-system : ['ubuntu-latest']
11
11
php-versions : ['7.4']
12
12
env :
13
13
extensions : pcov, dom, json, libxml, mbstring, pdo_sqlite, soap, xml, xmlwriter
14
- key : cache-v2
14
+ key : cache-v3
15
15
steps :
16
16
- name : " Checkout"
17
- uses : actions/checkout@v2
17
+ uses : actions/checkout@v3
18
18
- name : " Setup PHP extensions cache environment"
19
19
id : cache-env
20
20
uses : shivammathur/cache-extensions@v1
23
23
extensions : ${{ env.extensions }}
24
24
key : ${{ env.key }}
25
25
- name : " Cache PHP extensions"
26
- uses : actions/cache@v2
26
+ uses : actions/cache@v3
27
27
with :
28
28
path : ${{ steps.cache-env.outputs.dir }}
29
29
key : ${{ steps.cache-env.outputs.key }}
@@ -35,49 +35,88 @@ jobs:
35
35
coverage : pcov
36
36
extensions : ${{ env.extensions }}
37
37
ini-values : assert.exception=1, zend.assertions=1
38
- - name : " Validate composer.json"
39
- run : composer validate
40
- - name : " Setup composer cache"
41
- uses : actions/cache@v2
38
+ - name : " Install Composer dependencies"
39
+ uses : ramsey/composer-install@v2
42
40
with :
43
- path : ~/.composer/cache
44
- key : ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
45
- restore-keys : ${{ runner.os }}-composer-
46
- - name : " Install highest dependencies"
47
- run : composer update --no-interaction --no-ansi --no-progress --no-suggest --prefer-stable
41
+ dependency-versions : highest
42
+ composer-options : --prefer-stable
43
+ custom-cache-key : composer-${{ runner.os }}-php${{ matrix.php-versions }}-${{ hashFiles('**/composer.json') }}
48
44
- name : " Coding standard Php-CS-Fixer checks"
49
45
run : vendor/bin/php-cs-fixer --dry-run -v --config=cs-fixer.php.dist --path-mode=intersection fix src tests
50
46
- name : " Coding standard CodeSniffer checks"
51
47
run : |
52
- vendor/bin/phpcs --extensions=php --standard=vendor/polymorphine/dev/phpcs.xml src
53
- vendor/bin/phpcs --extensions=php --standard=vendor/polymorphine/dev/phpcs.xml --ignore=*/code-samples/* tests
48
+ vendor/bin/phpcs --extensions=php --standard=vendor/polymorphine/dev/phpcs.xml --colors src
49
+ vendor/bin/phpcs --extensions=php --standard=vendor/polymorphine/dev/phpcs.xml --colors -- ignore=*/code-samples/* tests
54
50
- name : " Package skeleton validation"
55
51
run : vendor/bin/polymorphine-skeleton check
56
52
- name : " Run PhpUnit tests with coverage"
57
53
run : |
58
- mkdir -p build /logs
59
- vendor/bin/phpunit --coverage-clover build /logs/clover.xml
54
+ mkdir -p .dev /logs
55
+ vendor/bin/phpunit --coverage-clover .dev /logs/clover.xml
60
56
- name : " Send coverage report to coveralls.io"
61
- run : vendor/bin/php-coveralls -v
57
+ run : |
58
+ composer require php-coveralls/php-coveralls
59
+ vendor/bin/php-coveralls -v -o .dev/logs/coveralls-upload.json -x .dev/logs/clover.xml
62
60
env :
63
- COVERALLS_RUN_LOCALLY : 1
64
61
COVERALLS_REPO_TOKEN : ${{ secrets.COVERALLS_REPO_TOKEN }}
65
62
66
- php-os-builds :
67
- name : " PHP 8 tests "
63
+ platform-compatibility :
64
+ name : " Operating systems "
68
65
runs-on : ${{ matrix.operating-system }}
69
66
strategy :
70
67
matrix :
71
68
operating-system : ['ubuntu-latest', 'windows-latest', 'macos-latest']
72
- php-versions : ['8.0', '8.1 ']
69
+ php-versions : ['8.4 ']
73
70
env :
74
71
extensions : dom, json, libxml, mbstring, pdo_sqlite, soap, xml, xmlwriter
75
- key : cache-v2
72
+ key : cache-v3
76
73
steps :
77
74
- name : " Turn off git EOL conversion"
78
75
run : git config --global core.autocrlf false
79
76
- name : " Checkout"
80
- uses : actions/checkout@v2
77
+ uses : actions/checkout@v3
78
+ - name : " Setup PHP extensions cache environment"
79
+ id : cache-env
80
+ uses : shivammathur/cache-extensions@v1
81
+ with :
82
+ php-version : ${{ matrix.php-versions }}
83
+ extensions : ${{ env.extensions }}
84
+ key : ${{ env.key }}
85
+ - name : " Cache PHP extensions"
86
+ uses : actions/cache@v3
87
+ with :
88
+ path : ${{ steps.cache-env.outputs.dir }}
89
+ key : ${{ steps.cache-env.outputs.key }}
90
+ restore-keys : ${{ steps.cache-env.outputs.key }}
91
+ - name : " Install PHP with extensions"
92
+ uses : shivammathur/setup-php@v2
93
+ with :
94
+ php-version : ${{ matrix.php-versions }}
95
+ coverage : none
96
+ extensions : ${{ env.extensions }}
97
+ ini-values : assert.exception=1, zend.assertions=1
98
+ - name : " Install Composer dependencies"
99
+ uses : ramsey/composer-install@v2
100
+ with :
101
+ dependency-versions : highest
102
+ composer-options : --prefer-stable
103
+ custom-cache-key : composer-${{ runner.os }}-php${{ matrix.php-versions }}-${{ hashFiles('**/composer.json') }}
104
+ - name : " Run PhpUnit tests (no coverage)"
105
+ run : vendor/bin/phpunit --no-coverage
106
+
107
+ php-versions :
108
+ name : " PHP versions"
109
+ runs-on : ${{ matrix.operating-system }}
110
+ strategy :
111
+ matrix :
112
+ operating-system : ['ubuntu-latest']
113
+ php-versions : ['8.0', '8.1', '8.2', '8.3']
114
+ env :
115
+ extensions : dom, json, libxml, mbstring, pdo_sqlite, soap, xml, xmlwriter
116
+ key : cache-v3
117
+ steps :
118
+ - name : " Checkout"
119
+ uses : actions/checkout@v3
81
120
- name : " Setup PHP extensions cache environment"
82
121
id : cache-env
83
122
uses : shivammathur/cache-extensions@v1
86
125
extensions : ${{ env.extensions }}
87
126
key : ${{ env.key }}
88
127
- name : " Cache PHP extensions"
89
- uses : actions/cache@v2
128
+ uses : actions/cache@v3
90
129
with :
91
130
path : ${{ steps.cache-env.outputs.dir }}
92
131
key : ${{ steps.cache-env.outputs.key }}
@@ -98,13 +137,11 @@ jobs:
98
137
coverage : none
99
138
extensions : ${{ env.extensions }}
100
139
ini-values : assert.exception=1, zend.assertions=1
101
- - name : " Setup composer cache "
102
- uses : actions/cache @v2
140
+ - name : " Install Composer dependencies "
141
+ uses : ramsey/composer-install @v2
103
142
with :
104
- path : ~/.composer/cache
105
- key : ${{ runner.os }}-php${{ matrix.php-versions }}-composer-${{ hashFiles('**/composer.json') }}
106
- restore-keys : ${{ runner.os }}-php${{ matrix.php-versions }}-composer-
107
- - name : " Install highest dependencies"
108
- run : composer update --no-interaction --no-ansi --no-progress --no-suggest --prefer-stable
143
+ dependency-versions : highest
144
+ composer-options : --prefer-stable
145
+ custom-cache-key : composer-${{ runner.os }}-php${{ matrix.php-versions }}-${{ hashFiles('**/composer.json') }}
109
146
- name : " Run PhpUnit tests (no coverage)"
110
147
run : vendor/bin/phpunit --no-coverage
0 commit comments