File tree Expand file tree Collapse file tree 4 files changed +28
-19
lines changed
Expand file tree Collapse file tree 4 files changed +28
-19
lines changed Original file line number Diff line number Diff line change @@ -27,12 +27,18 @@ jobs:
2727 - name : Cache Composer dependencies
2828 uses : actions/cache@v4
2929 with :
30- path : vendor
30+ path : ./ vendor-${{ matrix.php-version }}
3131 key : ${{ runner.os }}-php-${{ matrix.php-version }}-${{ hashFiles('**/composer.lock') }}
3232 restore-keys : ${{ runner.os }}-php-${{ matrix.php-version }}-
3333
34- - name : Install dependencies
35- run : docker compose run --rm -v ${{ github.workspace }}/test-output:/app/test-output ${{ matrix.php-version }}composer composer install --prefer-dist
34+ - name : Install dependencies (if needed)
35+ run : |
36+ if [ ! -d ./vendor-${{ matrix.php-version }} ] || [ -z "$(ls -A ./vendor-${{ matrix.php-version }})" ]; then
37+ echo "Dependencies not found or vendor directory is empty. Installing dependencies..."
38+ docker compose run --rm -v ${{ github.workspace }}/vendor-${{ matrix.php-version }}:/app/vendor ${{ matrix.php-version }}composer composer install --prefer-dist
39+ else
40+ echo "Dependencies already installed for ${{ matrix.php-version }}. Skipping composer install."
41+ fi
3642
3743 - name : Run tests
38- run : docker compose run --rm -v ${{ github.workspace }}/test-output :/app/test-output ${{ matrix.php-version }} vendor/bin/phpunit
44+ run : docker compose run --rm -v ${{ github.workspace }}/vendor-${{ matrix.php-version }} :/app/vendor ${{ matrix.php-version }} vendor/bin/phpunit
Original file line number Diff line number Diff line change 33composer.lock
44.phpunit.result.cache
55.php-cs-fixer.cache
6- /.phpunit.cache /
6+ /.phpunit.cache /
7+ /vendor-php81 /
8+ /vendor-php82 /
9+ /vendor-php83 /
Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ services:
55 target : base
66 volumes :
77 - ./:/app
8+ - ./vendor-php81:/app/vendor
89
910 php81debug :
1011 build :
@@ -13,20 +14,23 @@ services:
1314 volumes :
1415 - ./:/app
1516 - ./docker/php81:/usr/local/etc/php
17+ - ./vendor-php81:/app/vendor
1618
1719 php81composer :
1820 build :
1921 context : docker/php81
2022 target : composer
2123 volumes :
2224 - ./:/app
25+ - ./vendor-php81:/app/vendor
2326
2427 php82 :
2528 build :
2629 context : docker/php82
2730 target : base
2831 volumes :
2932 - ./:/app
33+ - ./vendor-php82:/app/vendor
3034
3135 php82debug :
3236 build :
@@ -35,32 +39,37 @@ services:
3539 volumes :
3640 - ./:/app
3741 - ./docker/php82:/usr/local/etc/php
42+ - ./vendor-php82:/app/vendor
3843
3944 php82composer :
4045 build :
4146 context : docker/php82
4247 target : composer
4348 volumes :
4449 - ./:/app
50+ - ./vendor-php82:/app/vendor
4551
4652 php83 :
4753 build :
4854 context : docker/php83
4955 target : base
5056 volumes :
5157 - ./:/app
58+ - ./vendor-php83:/app/vendor
5259
5360 php83debug :
5461 build :
5562 context : docker/php83
5663 target : debug
5764 volumes :
5865 - ./:/app
59- - ./docker/php82:/usr/local/etc/php
66+ - ./docker/php83:/usr/local/etc/php
67+ - ./vendor-php83:/app/vendor
6068
6169 php83composer :
6270 build :
6371 context : docker/php83
6472 target : composer
6573 volumes :
66- - ./:/app
74+ - ./:/app
75+ - ./vendor-php83:/app/vendor
Original file line number Diff line number Diff line change 1- # run-tests.sh
1+ #! /bin/bash
22set -e
33
44php_versions=(" php83" " php82" " php81" )
55
66for version in " ${php_versions[@]} " ; do
7- if [ -f composer.lock ]; then
8- echo " removing composer.lock"
9- rm composer.lock
10- fi
11-
12- docker compose run --rm " $version " composer composer install
7+ docker compose run --rm " ${version} composer" composer update --no-cache
138
14- echo " Running tests on $version ..."
159 if ! docker compose run --rm " $version " vendor/bin/phpunit; then
16- echo " Tests failed on $version ."
1710 exit 1
1811 fi
19- done
20-
21- echo " All tests passed!"
12+ done
You can’t perform that action at this time.
0 commit comments