-
Notifications
You must be signed in to change notification settings - Fork 19
129 lines (110 loc) · 3.87 KB
/
tests.yaml
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
name: "Tests"
on:
push:
branches: ["main"]
pull_request: null
schedule:
# Do not make it the first of the month and/or midnight since it is a very busy time
- cron: "* 10 5 * *"
jobs:
tests:
runs-on: "ubuntu-latest"
name: "Tests (PHP ${{ matrix.php }})"
strategy:
fail-fast: false
matrix:
php:
- "8.1"
- "8.2"
- "8.3"
- "8.4"
steps:
- name: "Check out repository code"
uses: "actions/checkout@v4"
- name: "Setup PHP"
uses: "shivammathur/setup-php@v2"
with:
php-version: "${{ matrix.php }}"
tools: "composer"
- name: "Install Composer dependencies"
uses: "ramsey/composer-install@v3"
- name: "Run tests"
run: "make phpunit"
symfony-version:
runs-on: "ubuntu-latest"
name: "Tests (PHP ${{ matrix.php }}) with Symfony ${{ matrix.symfony.version_name }} (deps: ${{ matrix.dependency-versions }})"
strategy:
fail-fast: false
matrix:
dependency-versions:
- "lowest"
- "highest"
php:
- "8.1"
- "8.2"
- "8.3"
- "8.4"
symfony:
- version_name: "6.4"
conflict: "<6.4 || >=7.0"
- version_name: "7.2"
conflict: "<7.2 || >=8.0"
exclude:
- symfony:
version_name: "7.2"
php: "8.1"
steps:
- name: "Check out repository code"
uses: "actions/checkout@v4"
- name: "Setup PHP"
uses: "shivammathur/setup-php@v2"
with:
php-version: "${{ matrix.php }}"
tools: "composer"
- name: "Fix the Symfony versions"
run: "bin/fix-symfony-versions \"${{ matrix.symfony.conflict }}\""
- name: "Install Composer dependencies"
uses: "ramsey/composer-install@v3"
with:
dependency-versions: "${{ matrix.dependency-versions }}"
- name: "Run tests"
run: "make phpunit"
infection:
runs-on: "ubuntu-latest"
name: "Infection (PHP ${{ matrix.php }})"
strategy:
fail-fast: false
matrix:
php:
- "8.3"
steps:
- name: "Check out repository code"
uses: "actions/checkout@v4"
- name: "Setup PHP"
uses: "shivammathur/setup-php@v2"
with:
php-version: "${{ matrix.php }}"
tools: "composer"
coverage: "pcov"
- name: "Install Composer dependencies"
uses: "ramsey/composer-install@v3"
- name: "Run tests with coverage and Infection"
run: "make infection"
# This is a "trick", a meta task which does not change, and we can use in
# the protected branch rules as opposed to the individual tests which
# may change regularly.
validate-tests:
name: "Tests Status"
runs-on: "ubuntu-latest"
needs:
- "tests"
- "symfony-version"
- "infection"
if: "always()"
steps:
- name: "Successful run"
if: "${{ !(contains(needs.*.result, 'failure')) }}"
run: "exit 0"
- name: "Failing run"
if: "${{ contains(needs.*.result, 'failure') }}"
run: "exit 1"