Skip to content

Commit f50ef23

Browse files
authored
Add conventions tests to CI (#78)
* Run conventions tests in CI * Fixed dependency issue spotted by convention tests * Fixed typo in packages * Try better error output in package conventions * Fixed dev package install during CIs
1 parent 3106d13 commit f50ef23

File tree

7 files changed

+43
-11
lines changed

7 files changed

+43
-11
lines changed

.github/actions/install/action.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,12 @@ runs:
2929
shell: bash
3030
run: |
3131
composer require --quiet --no-update "symfony/console:${{ inputs.symfony-version }}"
32-
composer require --quiet --no-update "symfony/filesystem:${{ inputs.symfony-version }}"
3332
composer require --quiet --no-update "symfony/framework-bundle:${{ inputs.symfony-version }}"
3433
composer require --quiet --no-update "symfony/messenger:${{ inputs.symfony-version }}"
3534
composer require --quiet --no-update "symfony/process:${{ inputs.symfony-version }}"
3635
composer require --quiet --no-update "symfony/serializer:${{ inputs.symfony-version }}"
3736
composer require --quiet --no-update "symfony/validator:${{ inputs.symfony-version }}"
37+
composer require --quiet --no-update "symfony/filesystem:${{ inputs.symfony-version }}" --dev
38+
composer require --quiet --no-update "symfony/finder:${{ inputs.symfony-version }}" --dev
39+
composer require --quiet --no-update "symfony/process:${{ inputs.symfony-version }}" --dev
3840
composer update --no-interaction --no-progress --no-suggest

.github/workflows/tests.yml

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
php-version: ${{ matrix.php-version }}
3131
symfony-version: ${{ matrix.symfony-version }}
3232
- name: "Run tests with phpunit/phpunit"
33-
run: vendor/bin/phpunit
33+
run: vendor/bin/phpunit --testsuite=Code
3434

3535
phpstan:
3636
name: "PhpStan"
@@ -60,6 +60,20 @@ jobs:
6060
- name: "Run checkstyle with squizlabs/php_codesniffer"
6161
run: vendor/bin/phpcs
6262

63+
conventions:
64+
name: "Conventions"
65+
runs-on: ubuntu-latest
66+
steps:
67+
- name: "Checkout"
68+
uses: actions/checkout@v2
69+
- name: "Setup env & install dependencies"
70+
uses: ./.github/actions/install
71+
with:
72+
php-version: '8.2'
73+
symfony-version: '6.2.*'
74+
- name: "Run tests with phpunit/phpunit"
75+
run: vendor/bin/phpunit --testsuite=Convention
76+
6377
codecov:
6478
name: "Code coverage"
6579
runs-on: ubuntu-latest
@@ -76,6 +90,6 @@ jobs:
7690
env:
7791
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
7892
run: |
79-
vendor/bin/phpunit --coverage-clover coverage.xml
93+
vendor/bin/phpunit --testsuite=Code --coverage-clover coverage.xml
8094
- name: "Upload coverage to Codecov"
8195
uses: codecov/codecov-action@v1

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"yokai/batch-doctrine-dbal": "self.version",
4949
"yokai/batch-doctrine-orm": "self.version",
5050
"yokai/batch-doctrine-persistence": "self.version",
51-
"yokai/batch-flysystem": "self.version",
51+
"yokai/batch-league-flysystem": "self.version",
5252
"yokai/batch-symfony-console": "self.version",
5353
"yokai/batch-symfony-framework": "self.version",
5454
"yokai/batch-symfony-messenger": "self.version",

phpunit.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,15 @@
2323
<testsuite name="Symfony">
2424
<directory>./tests/symfony/tests</directory>
2525
</testsuite>
26+
27+
<testsuite name="Code">
28+
<directory>./src/*/tests</directory>
29+
<directory>./tests/integration</directory>
30+
<directory>./tests/symfony/tests</directory>
31+
</testsuite>
32+
<testsuite name="Convention">
33+
<directory>./tests/convention</directory>
34+
</testsuite>
2635
</testsuites>
2736

2837
<coverage>

scripts/tests

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,21 @@ install () {
44
container="$1"
55
symfony="$2"
66
led in -s ${container} -- composer2 --no-interaction --quiet require --no-update symfony/console:${symfony}
7-
led in -s ${container} -- composer2 --no-interaction --quiet require --no-update symfony/filesystem:${symfony} --dev
87
led in -s ${container} -- composer2 --no-interaction --quiet require --no-update symfony/framework-bundle:${symfony}
98
led in -s ${container} -- composer2 --no-interaction --quiet require --no-update symfony/messenger:${symfony}
109
led in -s ${container} -- composer2 --no-interaction --quiet require --no-update symfony/process:${symfony}
1110
led in -s ${container} -- composer2 --no-interaction --quiet require --no-update symfony/serializer:${symfony}
1211
led in -s ${container} -- composer2 --no-interaction --quiet require --no-update symfony/validator:${symfony}
12+
led in -s ${container} -- composer2 --no-interaction --quiet require --no-update symfony/filesystem:${symfony} --dev
13+
led in -s ${container} -- composer2 --no-interaction --quiet require --no-update symfony/finder:${symfony} --dev
14+
led in -s ${container} -- composer2 --no-interaction --quiet require --no-update symfony/process:${symfony} --dev
1315
led in -s ${container} -- composer2 --no-interaction update --no-progress --with-all-dependencies
1416
}
1517

1618
install "php82" "6.2.*"
1719
led in -s php82 -- vendor/bin/phpcs
1820
led in -s php82 -- vendor/bin/phpstan analyze
21+
led in -s php82 -- vendor/bin/phpunit --testsuite=Convention
1922

2023
matrix=(
2124
"php80/5.4.*"
@@ -30,7 +33,7 @@ do
3033
symfony=${config[1]}
3134
echo "${entry}"
3235
install "${container}" "${symfony}"
33-
led in -s ${container} -- vendor/bin/phpunit
36+
led in -s ${container} -- vendor/bin/phpunit --testsuite=Code
3437
done
3538

3639
echo "Revert changes made to composer.json"

src/batch-doctrine-dbal/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"php": "^8.0",
1515
"ext-json": "*",
1616
"doctrine/dbal": "^2.11",
17-
"doctrine/persistence": "^2.0",
17+
"doctrine/persistence": "^2.0|^3.0",
1818
"yokai/batch": "^0.5.0"
1919
},
2020
"autoload": {

tests/convention/Dependency/SourcesTest.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ public function test(): void
4242
$prodDeps = $rootComposer->packages();
4343
$prodDeps[] = 'yokai/batch';
4444
\sort($prodDeps);
45-
self::assertEmpty(
45+
self::assertSame(
46+
[],
4647
\array_diff($expectedProdDeps, $prodDeps),
4748
'Dependencies of all packages are required in root composer.json'
4849
);
@@ -51,7 +52,8 @@ public function test(): void
5152
\sort($expectedDevDeps);
5253
$devDeps = $rootComposer->packagesDev();
5354
\sort($devDeps);
54-
self::assertEmpty(
55+
self::assertSame(
56+
[],
5557
\array_diff($expectedDevDeps, $devDeps),
5658
'Dev dependencies of all packages are required in root composer.json'
5759
);
@@ -68,15 +70,17 @@ public function test(): void
6870
$prodAutoload = $rootComposer->autoload();
6971
\ksort($prodAutoload);
7072
\ksort($expectedProdAutoload);
71-
self::assertEmpty(
73+
self::assertSame(
74+
[],
7275
\array_diff($expectedProdAutoload, $prodAutoload),
7376
'All packages autoload rules are duplicated in root composer.json'
7477
);
7578

7679
$devAutoload = $rootComposer->autoloadDev();
7780
\ksort($devAutoload);
7881
\ksort($expectedDevAutoload);
79-
self::assertEmpty(
82+
self::assertSame(
83+
[],
8084
\array_diff($expectedDevAutoload, $devAutoload),
8185
'All packages dev autoload rules are duplicated in root composer.json'
8286
);

0 commit comments

Comments
 (0)