Skip to content

Commit dcea0d9

Browse files
committed
Upgraded codebase to php 8.4
2 parents 436f98c + 4a79269 commit dcea0d9

File tree

6 files changed

+79
-41
lines changed

6 files changed

+79
-41
lines changed

.github/workflows/build.yml

Lines changed: 70 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@ name: build
22
on: [push, pull_request]
33

44
jobs:
5-
full-build:
6-
name: "Coding standards & coverage tests"
5+
quality-check:
6+
name: "Coding standards & test coverage"
77
runs-on: ${{ matrix.operating-system }}
88
strategy:
99
matrix:
1010
operating-system: ['ubuntu-latest']
1111
php-versions: ['7.4']
1212
env:
1313
extensions: pcov, dom, json, libxml, mbstring, pdo_sqlite, soap, xml, xmlwriter
14-
key: cache-v2
14+
key: cache-v3
1515
steps:
1616
- name: "Checkout"
17-
uses: actions/checkout@v2
17+
uses: actions/checkout@v3
1818
- name: "Setup PHP extensions cache environment"
1919
id: cache-env
2020
uses: shivammathur/cache-extensions@v1
@@ -23,7 +23,7 @@ jobs:
2323
extensions: ${{ env.extensions }}
2424
key: ${{ env.key }}
2525
- name: "Cache PHP extensions"
26-
uses: actions/cache@v2
26+
uses: actions/cache@v3
2727
with:
2828
path: ${{ steps.cache-env.outputs.dir }}
2929
key: ${{ steps.cache-env.outputs.key }}
@@ -35,49 +35,88 @@ jobs:
3535
coverage: pcov
3636
extensions: ${{ env.extensions }}
3737
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
4240
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') }}
4844
- name: "Coding standard Php-CS-Fixer checks"
4945
run: vendor/bin/php-cs-fixer --dry-run -v --config=cs-fixer.php.dist --path-mode=intersection fix src tests
5046
- name: "Coding standard CodeSniffer checks"
5147
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
5450
- name: "Package skeleton validation"
5551
run: vendor/bin/polymorphine-skeleton check
5652
- name: "Run PhpUnit tests with coverage"
5753
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
6056
- 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
6260
env:
63-
COVERALLS_RUN_LOCALLY: 1
6461
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
6562

66-
php-os-builds:
67-
name: "PHP 8 tests"
63+
platform-compatibility:
64+
name: "Operating systems"
6865
runs-on: ${{ matrix.operating-system }}
6966
strategy:
7067
matrix:
7168
operating-system: ['ubuntu-latest', 'windows-latest', 'macos-latest']
72-
php-versions: ['8.0', '8.1']
69+
php-versions: ['8.4']
7370
env:
7471
extensions: dom, json, libxml, mbstring, pdo_sqlite, soap, xml, xmlwriter
75-
key: cache-v2
72+
key: cache-v3
7673
steps:
7774
- name: "Turn off git EOL conversion"
7875
run: git config --global core.autocrlf false
7976
- 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
81120
- name: "Setup PHP extensions cache environment"
82121
id: cache-env
83122
uses: shivammathur/cache-extensions@v1
@@ -86,7 +125,7 @@ jobs:
86125
extensions: ${{ env.extensions }}
87126
key: ${{ env.key }}
88127
- name: "Cache PHP extensions"
89-
uses: actions/cache@v2
128+
uses: actions/cache@v3
90129
with:
91130
path: ${{ steps.cache-env.outputs.dir }}
92131
key: ${{ steps.cache-env.outputs.key }}
@@ -98,13 +137,11 @@ jobs:
98137
coverage: none
99138
extensions: ${{ env.extensions }}
100139
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
103142
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') }}
109146
- name: "Run PhpUnit tests (no coverage)"
110147
run: vendor/bin/phpunit --no-coverage

composer.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313
"prefer-stable": true,
1414
"require": {
1515
"php": "^7.4 || ^8.0",
16-
"psr/container": "^1.0"
16+
"psr/container": "^1.1"
1717
},
1818
"require-dev": {
19-
"polymorphine/dev": "0.2.*"
19+
"polymorphine/dev": "0.5.*"
2020
},
2121
"autoload": {
2222
"psr-4": {
@@ -31,8 +31,8 @@
3131
"scripts": {
3232
"test-cs": [
3333
"php-cs-fixer --dry-run -v --config=cs-fixer.php.dist --path-mode=intersection fix src tests",
34-
"phpcs --extensions=php --standard=vendor/polymorphine/dev/phpcs.xml src",
35-
"phpcs --extensions=php --standard=vendor/polymorphine/dev/phpcs.xml --ignore=*/code-samples/* tests"
34+
"phpcs --extensions=php --standard=vendor/polymorphine/dev/phpcs.xml --colors src",
35+
"phpcs --extensions=php --standard=vendor/polymorphine/dev/phpcs.xml --colors --ignore=*/code-samples/* tests"
3636
],
3737
"test-php": "phpunit",
3838
"test-skeleton": "polymorphine-skeleton check"

cs-fixer.php.dist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@
1111

1212
use Polymorphine\Dev\FixerFactory;
1313

14-
return FixerFactory::createFor('Polymorphine/Container', __DIR__);
14+
return FixerFactory::createFor(__FILE__);

phpunit.xml.dist

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22
<phpunit
33
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
44
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.5/phpunit.xsd"
5-
cacheResultFile=".dev/temp/.phpunit.result.cache"
5+
cacheResultFile=".dev/cache/.phpunit.result.cache"
66
colors="true"
77
bootstrap="vendor/autoload.php"
88
>
99
<php>
1010
<ini name="error_reporting" value="-1" />
11+
<env name="DEV_TESTS_DIRECTORY" value=".dev/tests" force="true" />
1112
</php>
1213
<testsuites>
1314
<testsuite name="Polymorphine/Container tests">

src/Setup.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class Setup
2828
/**
2929
* @param Build|null $build
3030
*/
31-
public function __construct(Build $build = null)
31+
public function __construct(?Build $build = null)
3232
{
3333
$this->build = $build ?: new Build();
3434
}

tests/Setup/EntryTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ private function builder(): Doubles\MockedBuild
134134
return new Doubles\MockedBuild();
135135
}
136136

137-
private function entry(string $id, Doubles\MockedBuild $build = null): Entry
137+
private function entry(string $id, ?Doubles\MockedBuild $build = null): Entry
138138
{
139139
return new Entry($id, $build ?? $this->builder());
140140
}

0 commit comments

Comments
 (0)