1
1
name : Unit Tests
2
2
3
+ defaults :
4
+ run :
5
+ shell : bash
6
+
3
7
on :
4
8
push :
5
9
paths-ignore :
@@ -18,14 +22,15 @@ concurrency:
18
22
19
23
jobs :
20
24
php :
21
- runs-on : ubuntu-latest
25
+ runs-on : ${{ matrix.os || ' ubuntu-latest' }}
22
26
strategy :
23
27
fail-fast : false
24
28
matrix :
25
29
php-version : ['8.1', '8.2', '8.3', '8.4']
26
30
dependency-version : ['']
27
31
symfony-version : ['']
28
32
minimum-stability : ['stable']
33
+ os : ['']
29
34
include :
30
35
# dev packages (probably not needed to have multiple such jobs)
31
36
- minimum-stability : ' dev'
36
41
# LTS version of Symfony
37
42
- php-version : ' 8.1'
38
43
symfony-version : ' 6.4.*'
44
+ - php-version : ' 8.1'
45
+ symfony-version : ' 6.4.*'
46
+ os : ' windows-latest'
39
47
40
48
env :
41
49
SYMFONY_REQUIRE : ${{ matrix.symfony-version || '>=5.4' }}
66
74
uses : shivammathur/setup-php@v2
67
75
with :
68
76
php-version : ${{ matrix.php-version }}
77
+ extensions : ${{ matrix.os == 'windows-latest' && 'pdo_sqlite,sqlite3,fileinfo,gd' || '' }}
69
78
tools : flex
70
79
71
80
- name : Get composer cache directory
@@ -89,17 +98,39 @@ jobs:
89
98
- name : Build root packages
90
99
run : php .github/build-packages.php
91
100
92
- - name : Run packages tests
101
+ - name : Run packages tests (Unix)
102
+ if : matrix.os != 'windows-latest'
93
103
run : |
94
104
source .github/workflows/.utils.sh
95
-
96
105
echo "$PACKAGES" | xargs -n1 | parallel -j +3 "_run_task {} \
97
106
'(cd src/{} \
98
107
&& $COMPOSER_MIN_STAB \
99
108
&& $COMPOSER_UP \
100
109
&& if [ {} = LiveComponent ]; then install_property_info_for_version \"${{ matrix.php-version }}\" \"${{ matrix.minimum-stability }}\"; fi \
101
110
&& $PHPUNIT)'"
102
111
112
+ - name : Run packages tests (Windows)
113
+ if : matrix.os == 'windows-latest'
114
+ run : |
115
+ source .github/workflows/.utils.sh
116
+
117
+ # parallel is not available on Windows, so we need to run the tests sequentially
118
+ FAILED_PACKAGES=""
119
+ for PACKAGE in $PACKAGES; do
120
+ if ! PACKAGE="$PACKAGE" _run_task_sequential $PACKAGE \
121
+ '(cd src/$PACKAGE \
122
+ && $COMPOSER_MIN_STAB \
123
+ && $COMPOSER_UP \
124
+ && if [ "$PACKAGE" = "LiveComponent" ]; then install_property_info_for_version \"${{ matrix.php-version }}\" \"${{ matrix.minimum-stability }}\"; fi \
125
+ && $PHPUNIT)'; then
126
+ FAILED_PACKAGES="$FAILED_PACKAGES $PACKAGE"
127
+ fi
128
+ done
129
+
130
+ if [ -n "$FAILED_PACKAGES" ]; then
131
+ echo "The following packages failed:$FAILED_PACKAGES"
132
+ exit 1
133
+ fi
103
134
js :
104
135
runs-on : ubuntu-latest
105
136
strategy :
0 commit comments