Skip to content

Commit 5c6f393

Browse files
committed
ci(merge-coverage): add workflow to prove it works
1 parent 16159ba commit 5c6f393

File tree

5 files changed

+83
-15
lines changed

5 files changed

+83
-15
lines changed

.github/workflows/merge-coverage.yaml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
name: "Merge Coverage"
2+
3+
on: [pull_request]
4+
5+
jobs:
6+
unit:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- uses: actions/checkout@v4
10+
- uses: shivammathur/setup-php@v2
11+
with:
12+
tools: composer
13+
coverage: xdebug
14+
env:
15+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
16+
- run: composer install
17+
- run: vendor/bin/phpunit --testsuite unit --coverage-php reports/unit.php
18+
- uses: actions/cache/save@v4
19+
with:
20+
path: reports
21+
key: reports-unit-${{ github.run_id }}
22+
23+
integration:
24+
runs-on: ubuntu-latest
25+
steps:
26+
- uses: actions/checkout@v4
27+
- uses: shivammathur/setup-php@v2
28+
with:
29+
tools: composer
30+
coverage: xdebug
31+
env:
32+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
33+
- run: composer install
34+
- run: vendor/bin/phpunit --testsuite integration --coverage-php reports/integration.php
35+
- uses: actions/cache/save@v4
36+
with:
37+
path: reports
38+
key: reports-integration-${{ github.run_id }}
39+
40+
coverage:
41+
runs-on: ubuntu-latest
42+
needs: [integration, unit]
43+
44+
steps:
45+
- uses: actions/checkout@v4
46+
- uses: actions/cache/restore@v4
47+
with:
48+
path: reports
49+
key: reports-unit-${{ github.run_id }}
50+
- uses: actions/cache/restore@v4
51+
with:
52+
path: reports
53+
key: reports-integration-${{ github.run_id }}
54+
55+
- uses: shivammathur/setup-php@v2
56+
with:
57+
tools: composer
58+
coverage: xdebug
59+
env:
60+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
61+
- run: composer install
62+
- run: php bin/merge-coverage.php
63+
64+

.github/workflows/phpunit.yaml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@ jobs:
88
runs-on: ubuntu-latest
99

1010
steps:
11-
- name: Check out repository code
12-
uses: actions/checkout@master
13-
14-
- uses: php-actions/composer@master
15-
16-
- name: PHPUnit Tests
17-
uses: php-actions/phpunit@master
11+
- uses: actions/checkout@v4
12+
- uses: shivammathur/setup-php@v2
13+
with:
14+
tools: composer
15+
env:
16+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
17+
- run: composer install
18+
- run: vendor/bin/phpunit

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
### MacOs ###
22
.DS_Store
33

4+
### PhpStorm ###
5+
/.idea
6+
47
### Composer ###
58
composer.lock
69
composer.phar
@@ -13,3 +16,4 @@ composer.phar
1316
/reports
1417
!/reports/.keep
1518
/coverage
19+

Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ test:
1313
classnames.test:
1414
docker compose exec php vendor/bin/phpunit --testsuite classnames
1515

16-
unit.test:
16+
unit.test: start
1717
docker compose exec php vendor/bin/phpunit --testsuite unit --coverage-php reports/unit.php
1818

19-
integration.test:
19+
integration.test: start
2020
docker compose exec php vendor/bin/phpunit --testsuite integration --coverage-php reports/integration.php
2121

22-
merge-coverage:
22+
merge-coverage: unit.test integration.test
2323
docker compose exec php bin/merge-coverage.php

bin/merge-coverage.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,18 @@
33

44
require __DIR__.'/../vendor/autoload.php';
55

6-
use \SebastianBergmann\CodeCoverage\CodeCoverage;
7-
use \SebastianBergmann\CodeCoverage\Report\Html\CustomCssFile;
86
use \SebastianBergmann\CodeCoverage\Report\Html\Facade as HtmlReport;
97
use \PHPUnit\Runner\Version;
108

9+
$reference = sprintf(' and <a href="https://phpunit.de/">PHPUnit %s</a>', Version::id());
10+
$report = new HtmlReport($reference);
11+
1112
$unit = include('reports/unit.php');
1213
$integration = include('reports/integration.php');
1314

1415
$unit->merge($integration);
1516

16-
$reference = sprintf(' and <a href="https://phpunit.de/">PHPUnit %s</a>', Version::id());
17-
18-
(new HtmlReport($reference))->process($unit, 'coverage');
17+
$report->process($unit, 'coverage');
1918

2019

2120

0 commit comments

Comments
 (0)