1
+ name : CI
2
+
3
+ on :
4
+ push :
5
+ branches : [ "main", "develop" ]
6
+ pull_request :
7
+ branches : [ "main", "develop" ]
8
+
9
+ permissions :
10
+ contents : read
11
+
12
+ jobs :
13
+
14
+ code-style :
15
+ runs-on : ' ubuntu-latest'
16
+ name : ' Coding style'
17
+ steps :
18
+ - name : ' Checkout'
19
+ uses : ' actions/checkout@v3'
20
+
21
+ - name : ' Setup PHP'
22
+ uses : ' shivammathur/setup-php@v2'
23
+ with :
24
+ php-version : ' 8.1'
25
+ coverage : ' none'
26
+ tools : ' composer:v2, composer-normalize'
27
+
28
+ - name : ' Install dependencies'
29
+ run : |
30
+ composer install --no-interaction --no-progress --ansi
31
+
32
+ - name : ' Check PHP code'
33
+ run : |
34
+ composer phpcs
35
+ composer phpmd
36
+
37
+ - name : ' Check composer.json'
38
+ run : ' composer-normalize --diff --dry-run --no-update-lock'
39
+ if : ' always()'
40
+
41
+ phpunit :
42
+ runs-on : ${{ matrix.system }}
43
+ name : ' PHPUnit (PHP ${{ matrix.php }} - ${{ matrix.system }})'
44
+ strategy :
45
+ matrix :
46
+ system : ['ubuntu-latest']
47
+ php :
48
+ - ' 8.0'
49
+ - ' 8.1'
50
+ steps :
51
+ - name : Checkout Code
52
+ uses : actions/checkout@v3
53
+
54
+ - name : ' Setup PHP'
55
+ uses : ' shivammathur/setup-php@v2'
56
+ with :
57
+ php-version : ' ${{ matrix.php }}'
58
+ coverage : ' none'
59
+ tools : ' composer:v2'
60
+
61
+ - name : ' Install dependencies'
62
+ run : |
63
+ composer install --no-interaction --no-progress --ansi
64
+
65
+ - name : ' Run unit tests'
66
+ run : |
67
+ composer phpunit
68
+
69
+ code-coverage :
70
+ runs-on : ' ubuntu-latest'
71
+ name : ' Code Coverage'
72
+ steps :
73
+ - name : ' Checkout'
74
+ uses : ' actions/checkout@v3'
75
+
76
+ - name : ' Setup PHP'
77
+ uses : ' shivammathur/setup-php@v2'
78
+ with :
79
+ php-version : ' 8.1'
80
+ tools : ' composer:v2'
81
+
82
+ - name : ' Install dependencies'
83
+ run : |
84
+ composer install --no-interaction --no-progress --ansi
85
+
86
+ - name : ' Run code coverage'
87
+ run : |
88
+ composer coverage
89
+
90
+ - name : Send code coverage report to Codecov.io
91
+ uses : codecov/codecov-action@v2
92
+ with :
93
+ token : ${{ secrets.CODECOV_TOKEN }}
0 commit comments