11name : Unit Tests
22
3+ defaults :
4+ run :
5+ shell : bash
6+
37on :
48 push :
59 paths-ignore :
@@ -18,14 +22,15 @@ concurrency:
1822
1923jobs :
2024 php :
21- runs-on : ubuntu-latest
25+ runs-on : ${{ matrix.os || ' ubuntu-latest' }}
2226 strategy :
2327 fail-fast : false
2428 matrix :
2529 php-version : ['8.1', '8.2', '8.3', '8.4']
2630 dependency-version : ['']
2731 symfony-version : ['']
2832 minimum-stability : ['stable']
33+ os : ['']
2934 include :
3035 # dev packages (probably not needed to have multiple such jobs)
3136 - minimum-stability : ' dev'
3641 # LTS version of Symfony
3742 - php-version : ' 8.1'
3843 symfony-version : ' 6.4.*'
44+ - php-version : ' 8.1'
45+ symfony-version : ' 6.4.*'
46+ os : ' windows-latest'
3947
4048 env :
4149 SYMFONY_REQUIRE : ${{ matrix.symfony-version || '>=5.4' }}
6674 uses : shivammathur/setup-php@v2
6775 with :
6876 php-version : ${{ matrix.php-version }}
77+ extensions : ${{ matrix.os == 'windows-latest' && 'pdo_sqlite,sqlite3,fileinfo,gd' || '' }}
6978 tools : flex
7079
7180 - name : Get composer cache directory
@@ -89,17 +98,39 @@ jobs:
8998 - name : Build root packages
9099 run : php .github/build-packages.php
91100
92- - name : Run packages tests
101+ - name : Run packages tests (Unix)
102+ if : matrix.os != 'windows-latest'
93103 run : |
94104 source .github/workflows/.utils.sh
95-
96105 echo "$PACKAGES" | xargs -n1 | parallel -j +3 "_run_task {} \
97106 '(cd src/{} \
98107 && $COMPOSER_MIN_STAB \
99108 && $COMPOSER_UP \
100109 && if [ {} = LiveComponent ]; then install_property_info_for_version \"${{ matrix.php-version }}\" \"${{ matrix.minimum-stability }}\"; fi \
101110 && $PHPUNIT)'"
102111
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
103134 js :
104135 runs-on : ubuntu-latest
105136 strategy :
0 commit comments