generated from spawnia/php-package-template
-
-
Notifications
You must be signed in to change notification settings - Fork 18
156 lines (126 loc) · 3.84 KB
/
validate.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
# https://help.github.com/en/categories/automating-your-workflow-with-github-actions
on:
pull_request:
push:
branches:
- "master"
jobs:
composer-validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: shivammathur/setup-php@v2
with:
coverage: none
extensions: mbstring
php-version: 8.3
- run: composer validate
static-code-analysis:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php-version:
- 7.4
- 8.0
- 8.1
- 8.2
- 8.3
- 8.4
dependencies:
- lowest
- highest
exclude:
# Problematic because those PHP versions allow nette/php-generator 3 which can not generate native enums
- php-version: 8.1
dependencies: lowest
- php-version: 8.2
dependencies: lowest
steps:
- uses: actions/checkout@v4
- uses: shivammathur/setup-php@v2
with:
coverage: none
extensions: mbstring
php-version: 8.3
- uses: ramsey/composer-install@v3
with:
dependency-versions: "${{ matrix.dependencies }}"
# We require PHP 8.1 to generate native enums.
# Thus, the generated output differs in other versions, so we regenerate the code there.
# This is not ideal as it makes CodegenTest less useful, but allows us to move forward with native enums.
- if: ${{ matrix.php-version <= '8.1' }}
run: make approve
- run: vendor/bin/phpstan analyse --configuration=phpstan.neon
tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php-version:
- 7.4
- 8.0
- 8.1
- 8.2
- 8.3
- 8.4
dependencies:
- lowest
- highest
exclude:
# Problematic because those PHP versions allow nette/php-generator 3 which can not generate native enums
- php-version: 8.1
dependencies: lowest
- php-version: 8.2
dependencies: lowest
steps:
- uses: actions/checkout@v4
- uses: shivammathur/setup-php@v2
with:
coverage: none
extensions: mbstring
php-version: ${{ matrix.php-version }}
- uses: ramsey/composer-install@v3
with:
dependency-versions: "${{ matrix.dependencies }}"
# We require PHP 8.1 to generate native enums.
# Thus, the generated output differs in other versions, so we regenerate the code there.
# This is not ideal as it makes CodegenTest less useful, but allows us to move forward with native enums.
- if: ${{ matrix.php-version <= '8.1' }}
run: make approve
- run: vendor/bin/phpunit
examples:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
example:
- custom-types
- input
- install
- php-keywords
- simple
- polymorphic
steps:
- uses: actions/checkout@v4
- uses: shivammathur/setup-php@v2
with:
coverage: none
extensions: mbstring
php-version: 8.3
env:
COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: cd examples/${{ matrix.example }} && ./test.sh
code-coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: shivammathur/setup-php@v2
with:
coverage: pcov
extensions: mbstring
php-version: 8.3
- uses: ramsey/composer-install@v3
- run: vendor/bin/phpunit --coverage-clover=build/logs/clover.xml
# Not using v4 due to the breaking changes described in https://github.com/codecov/codecov-action/releases/tag/v4.0.0
- uses: codecov/codecov-action@v3