Skip to content

Commit f7dc3a2

Browse files
committed
Move lint and static analysis to separate jobs
1 parent 9e3bed9 commit f7dc3a2

File tree

2 files changed

+205
-67
lines changed

2 files changed

+205
-67
lines changed

.github/workflows/ci.yml

Lines changed: 205 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,205 @@
1+
name: run-tests
2+
3+
on:
4+
push:
5+
6+
jobs:
7+
build:
8+
runs-on: ubuntu-24.04
9+
timeout-minutes: 5
10+
11+
strategy:
12+
fail-fast: true
13+
matrix:
14+
php: [8.3, 8.4]
15+
laravel: [11.*, 12.*]
16+
include:
17+
- laravel: 11.*
18+
testbench: 9.*
19+
larastan: 3.*
20+
pint: 1.*
21+
- laravel: 12.*
22+
testbench: 10.*
23+
larastan: 3.*
24+
pint: 1.*
25+
26+
name: Build - PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }}
27+
steps:
28+
- name: Checkout code
29+
uses: actions/checkout@v4
30+
31+
- name: Cache dependencies
32+
uses: actions/cache@v4
33+
with:
34+
path: ~/.composer/cache/files
35+
key: dependencies-pw-v2-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
36+
37+
- name: Setup PHP
38+
uses: shivammathur/setup-php@v2
39+
with:
40+
php-version: ${{ matrix.php }}
41+
extensions: curl, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, iconv
42+
coverage: none
43+
tools: composer:v2
44+
45+
- name: Install dependencies
46+
run: |
47+
composer --version
48+
composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update
49+
composer require "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update --dev
50+
composer require "larastan/larastan:${{ matrix.larastan }}" --no-interaction --no-update --dev
51+
composer require "laravel/pint:${{ matrix.pint }}" --no-interaction --no-update --dev
52+
composer update --prefer-dist --no-interaction --no-suggest --dev
53+
composer dump
54+
55+
lint:
56+
runs-on: ubuntu-24.04
57+
timeout-minutes: 5
58+
59+
strategy:
60+
fail-fast: true
61+
matrix:
62+
php: [ 8.4 ]
63+
laravel: [ 12.* ]
64+
include:
65+
- laravel: 12.*
66+
testbench: 10.*
67+
larastan: 3.*
68+
pint: 1.*
69+
70+
name: Lint - PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }}
71+
steps:
72+
- name: Checkout code
73+
uses: actions/checkout@v4
74+
75+
- name: Cache dependencies
76+
uses: actions/cache@v4
77+
with:
78+
path: ~/.composer/cache/files
79+
key: dependencies-pw-v2-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
80+
81+
- name: Setup PHP
82+
uses: shivammathur/setup-php@v2
83+
with:
84+
php-version: ${{ matrix.php }}
85+
extensions: curl, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, iconv
86+
coverage: none
87+
tools: composer:v2
88+
89+
- name: Install dependencies
90+
run: |
91+
composer --version
92+
composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update
93+
composer require "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update --dev
94+
composer require "larastan/larastan:${{ matrix.larastan }}" --no-interaction --no-update --dev
95+
composer require "laravel/pint:${{ matrix.pint }}" --no-interaction --no-update --dev
96+
composer update --prefer-dist --no-interaction --no-suggest --dev
97+
composer dump
98+
99+
- name: Pint (check styles)
100+
run: composer check-style
101+
102+
static-analysis:
103+
runs-on: ubuntu-24.04
104+
timeout-minutes: 5
105+
106+
strategy:
107+
fail-fast: true
108+
matrix:
109+
php: [ 8.4 ]
110+
laravel: [ 12.* ]
111+
include:
112+
- laravel: 12.*
113+
testbench: 10.*
114+
larastan: 3.*
115+
pint: 1.*
116+
117+
name: Static Analysis - PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }}
118+
steps:
119+
- name: Checkout code
120+
uses: actions/checkout@v4
121+
122+
- name: Cache dependencies
123+
uses: actions/cache@v4
124+
with:
125+
path: ~/.composer/cache/files
126+
key: dependencies-pw-v2-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
127+
128+
- name: Setup PHP
129+
uses: shivammathur/setup-php@v2
130+
with:
131+
php-version: ${{ matrix.php }}
132+
extensions: curl, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, iconv
133+
coverage: none
134+
tools: composer:v2
135+
136+
- name: Install dependencies
137+
run: |
138+
composer --version
139+
composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update
140+
composer require "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update --dev
141+
composer require "larastan/larastan:${{ matrix.larastan }}" --no-interaction --no-update --dev
142+
composer require "laravel/pint:${{ matrix.pint }}" --no-interaction --no-update --dev
143+
composer update --prefer-dist --no-interaction --no-suggest --dev
144+
composer dump
145+
146+
- name: Run Larastan
147+
run: composer static-analysis
148+
149+
tests:
150+
runs-on: ubuntu-24.04
151+
timeout-minutes: 5
152+
153+
needs: [build]
154+
155+
strategy:
156+
fail-fast: true
157+
matrix:
158+
php: [8.3, 8.4]
159+
laravel: [11.*, 12.*]
160+
include:
161+
- laravel: 11.*
162+
testbench: 9.*
163+
larastan: 3.*
164+
pint: 1.*
165+
- laravel: 12.*
166+
testbench: 10.*
167+
larastan: 3.*
168+
pint: 1.*
169+
170+
name: Tests - PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }}
171+
steps:
172+
- name: Checkout code
173+
uses: actions/checkout@v4
174+
175+
- name: Cache dependencies
176+
uses: actions/cache@v4
177+
with:
178+
path: ~/.composer/cache/files
179+
key: dependencies-pw-v2-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
180+
181+
- name: Setup PHP
182+
uses: shivammathur/setup-php@v2
183+
with:
184+
php-version: ${{ matrix.php }}
185+
extensions: curl, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, iconv
186+
coverage: none
187+
tools: composer:v2
188+
189+
- name: Install dependencies
190+
run: |
191+
composer --version
192+
composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update
193+
composer require "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update --dev
194+
composer require "larastan/larastan:${{ matrix.larastan }}" --no-interaction --no-update --dev
195+
composer require "laravel/pint:${{ matrix.pint }}" --no-interaction --no-update --dev
196+
composer update --prefer-dist --no-interaction --no-suggest --dev
197+
composer dump
198+
199+
- name: Setup SQLite Database
200+
run: php vendor/bin/testbench package:create-sqlite-db
201+
202+
- name: Execute tests
203+
run: vendor/bin/pest
204+
env:
205+
DB_CONNECTION: sqlite

.github/workflows/tests.yml

Lines changed: 0 additions & 67 deletions
This file was deleted.

0 commit comments

Comments
 (0)