-
Notifications
You must be signed in to change notification settings - Fork 20
173 lines (143 loc) · 4.32 KB
/
Copy pathvalidate.yml
File metadata and controls
173 lines (143 loc) · 4.32 KB
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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
# 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
- 8.5
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
- 8.5
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
- inline-fragments
php-version:
- 8.4
dependencies:
- highest
include:
- example: simple
php-version: 7.4
dependencies: lowest
- example: simple
php-version: 8.1
dependencies: lowest
- example: simple
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 }}
env:
COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: examples/validate.sh "${{ matrix.example }}" --dependencies="${{ matrix.dependencies }}"
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