Skip to content

Commit 3f8bc83

Browse files
sorrxsorrx
authored and
sorrx
committed
Support Symfony 7 and bump latest testet PHP version to 8.3
1 parent 140105b commit 3f8bc83

File tree

3 files changed

+42
-27
lines changed

3 files changed

+42
-27
lines changed

.github/workflows/test.yml

+14-12
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,25 @@ jobs:
1111
strategy:
1212
matrix:
1313
# Earliest and latest version of each major version
14-
php-versions: ['7.2', '7.4', '8.0', '8.2']
14+
php-versions: ['7.2', '7.4', '8.0', '8.3']
1515
prefer: ['prefer-stable', 'prefer-lowest']
16-
symfony-versions: ['^3.4', '^4', '^5', '^6']
16+
symfony-versions: ['^5.4', '^6', '^7']
1717
include:
18-
- symfony-versions: '^3.4'
19-
symfony-bundle-test-version: '^1.8'
18+
- symfony-versions: '^7'
19+
symfony7-required-yaml-version: '^6 || ^7'
2020
exclude:
21+
# Symfony 7 requires at least PHP 8.2
22+
- php-versions: '7.2'
23+
symfony-versions: '^7'
24+
- php-versions: '7.4'
25+
symfony-versions: '^7'
26+
- php-versions: '8.0'
27+
symfony-versions: '^7'
2128
# Symfony 6 requires PHP 8
2229
- php-versions: '7.2'
2330
symfony-versions: '^6'
2431
- php-versions: '7.4'
2532
symfony-versions: '^6'
26-
# Symfony 3.4 with PHP 8 is possible, though we skip it to reduce the number of jobs
27-
- php-versions: '8.0'
28-
symfony-versions: '^3.4'
29-
- php-versions: '8.1'
30-
symfony-versions: '^3.4'
3133
name: Test PHP ${{ matrix.php-versions }}, Symfony ${{ matrix.symfony-versions }}, ${{ matrix.prefer }}
3234

3335
steps:
@@ -53,12 +55,12 @@ jobs:
5355

5456
- name: Install dependencies
5557
run: |
56-
if [ -n "${{ matrix.symfony-bundle-test-version }}" ]; then
57-
composer require --dev --no-update "nyholm/symfony-bundle-test:${{ matrix.symfony-bundle-test-version }}"
58-
fi
5958
for symfony_package in $(jq -r '.require | keys[]' composer.json | grep '^symfony/'); do
6059
composer require --no-update "${symfony_package}:${{ matrix.symfony-versions }}"
6160
done
61+
if [ -n "${{ matrix.symfony7-required-yaml-version }}" ]; then
62+
composer require --dev --no-update "symfony/yaml:${{ matrix.symfony7-required-yaml-version }}"
63+
fi
6264
composer --prefer-dist --${{ matrix.prefer }} update
6365
6466
- name: Setup problem matchers for PHPUnit

composer.json

+6-6
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,17 @@
1717
"wiki": "https://github.com/shivas/versioning-bundle/wiki"
1818
},
1919
"require": {
20-
"php": "^7.2 || ^8",
20+
"php": "^7.2.5 || ^8",
2121
"nikolaposa/version": "^4",
22-
"symfony/console": "^3.4 || ^4 || ^5 || ^6",
23-
"symfony/framework-bundle": "^3.4 || ^4 || ^5 || ^6",
24-
"symfony/process": "^3.4 || ^4 || ^5 || ^6"
22+
"symfony/console": "^5.4 || ^6 || ^7",
23+
"symfony/framework-bundle": "^5.4 || ^6 || ^7",
24+
"symfony/process": "^5.4 || ^6 || ^7"
2525
},
2626
"require-dev": {
2727
"mikey179/vfsstream": "^2",
28-
"nyholm/symfony-bundle-test": "1.x-dev",
28+
"nyholm/symfony-bundle-test": "^3.0",
2929
"phpunit/phpunit": "^8.5.27",
30-
"symfony/phpunit-bridge": "^5 || ^6",
30+
"symfony/phpunit-bridge": "^5.4 || ^6 || ^7",
3131
"twig/twig": "^2 || ^3"
3232
},
3333
"config": {

tests/BundleInitializationTest.php

+22-9
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33

44
namespace Shivas\VersioningBundle\Tests;
55

6-
use Nyholm\BundleTest\BaseBundleTestCase;
7-
use Nyholm\BundleTest\CompilerPass\PublicServicePass;
6+
use Nyholm\BundleTest\TestKernel;
87
use Shivas\VersioningBundle\Formatter\FormatterInterface;
98
use Shivas\VersioningBundle\Formatter\GitDescribeFormatter;
109
use Shivas\VersioningBundle\Provider\GitRepositoryProvider;
@@ -17,22 +16,36 @@
1716
use Shivas\VersioningBundle\Twig\VersionExtension;
1817
use Shivas\VersioningBundle\Writer\VersionWriter;
1918
use Shivas\VersioningBundle\Writer\WriterInterface;
19+
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
20+
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
21+
use Symfony\Component\DependencyInjection\ContainerBuilder;
22+
use Symfony\Component\HttpKernel\KernelInterface;
2023

2124
/**
2225
* @covers \Shivas\VersioningBundle\ShivasVersioningBundle
2326
*/
24-
class BundleInitializationTest extends BaseBundleTestCase
27+
class BundleInitializationTest extends KernelTestCase
2528
{
26-
protected function setUp(): void
29+
protected static function getKernelClass(): string
2730
{
28-
parent::setUp();
29-
30-
$this->addCompilerPass(new PublicServicePass('/^Shivas\\\\VersioningBundle\\\\|^shivas_versioning.twig.version$/'));
31+
return TestKernel::class;
3132
}
3233

33-
protected function getBundleClass(): string
34+
protected static function createKernel(array $options = []): KernelInterface
3435
{
35-
return ShivasVersioningBundle::class;
36+
/** @var TestKernel $kernel */
37+
$kernel = parent::createKernel($options);
38+
$kernel->addTestBundle(ShivasVersioningBundle::class);
39+
$kernel->addTestCompilerPass(new class implements CompilerPassInterface {
40+
public function process(ContainerBuilder $container): void
41+
{
42+
// Service would be removed because it's unused.
43+
$container->findDefinition('shivas_versioning.twig.version')->setPublic(true);
44+
}
45+
});
46+
$kernel->handleOptions($options);
47+
48+
return $kernel;
3649
}
3750

3851
public function testInitBundle()

0 commit comments

Comments
 (0)