Skip to content

Commit d683f53

Browse files
committed
Refactor GitHub Actions workflow to improve test environment setup and dependency caching.
1 parent 3cc2126 commit d683f53

File tree

1 file changed

+28
-28
lines changed

1 file changed

+28
-28
lines changed

.github/workflows/run-tests.yml

+28-28
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,55 @@
11
name: run-tests
22

3-
on:
4-
push:
5-
paths:
6-
- '**.php'
7-
- '.github/workflows/run-tests.yml'
8-
- 'phpunit.xml.dist'
9-
- 'composer.json'
10-
- 'composer.lock'
3+
on: [push, pull_request]
114

125
jobs:
136
test:
147
runs-on: ${{ matrix.os }}
15-
timeout-minutes: 5
168
strategy:
17-
fail-fast: true
9+
fail-fast: false
1810
matrix:
19-
os: [ubuntu-latest, windows-latest]
20-
php: [8.3, 8.2]
21-
laravel: [10.*]
22-
stability: [prefer-lowest, prefer-stable]
11+
php: [8.2, 8.3]
12+
laravel: [10.*, 11.*]
13+
dependency-version: [prefer-stable]
14+
os: [ubuntu-latest]
2315
include:
2416
- laravel: 10.*
2517
testbench: 8.*
26-
carbon: ^2.71
18+
- laravel: 11.*
19+
testbench: 9.*
2720

28-
name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }}
21+
name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.dependency-version }} - ${{ matrix.os }}
2922

3023
steps:
3124
- name: Checkout code
3225
uses: actions/checkout@v4
3326

27+
- name: Install and start test server
28+
run: |
29+
cd tests/server
30+
npm install
31+
(node server.js &) || /bin/true
32+
33+
- name: Wait for server bootup
34+
run: sleep 5
35+
36+
- name: Cache dependencies
37+
uses: actions/cache@v4
38+
with:
39+
path: ~/.composer/cache/files
40+
key: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
41+
3442
- name: Setup PHP
3543
uses: shivammathur/setup-php@v2
3644
with:
3745
php-version: ${{ matrix.php }}
38-
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo
46+
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, mysql, mysqli, pdo_mysql, bcmath, soap, intl, gd, exif, iconv, imagick
3947
coverage: none
4048

41-
- name: Setup problem matchers
42-
run: |
43-
echo "::add-matcher::${{ runner.tool_cache }}/php.json"
44-
echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
45-
4649
- name: Install dependencies
4750
run: |
48-
composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" "nesbot/carbon:${{ matrix.carbon }}" --no-interaction --no-update
49-
composer update --${{ matrix.stability }} --prefer-dist --no-interaction
50-
51-
- name: List Installed Dependencies
52-
run: composer show -D
51+
composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update
52+
composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest
5353
5454
- name: Execute tests
55-
run: vendor/bin/pest --ci
55+
run: vendor/bin/pest

0 commit comments

Comments
 (0)