Skip to content

Commit b64b35b

Browse files
zero-to-proddavid_smith
andauthored
maint/update-tests (#25)
* maint/update-tests Updated `.github/workflows/test.yml`. * maint/update-tests Updated `.gitignore`. * maint/update-tests Updated `docker-compose.yml`. * maint/update-tests Updated `test.sh`. --------- Co-authored-by: david_smith <david_smith@sweetwater.com>
1 parent cb6629c commit b64b35b

File tree

4 files changed

+28
-19
lines changed

4 files changed

+28
-19
lines changed

.github/workflows/test.yml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff 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

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,7 @@ vendor
33
composer.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/

docker-compose.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff 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

test.sh

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,12 @@
1-
# run-tests.sh
1+
#!/bin/bash
22
set -e
33

44
php_versions=("php83" "php82" "php81")
55

66
for 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

0 commit comments

Comments
 (0)