Skip to content

Commit f93bb50

Browse files
committed
feat: add support for Laravel 12
1 parent e2bb232 commit f93bb50

21 files changed

+219
-38
lines changed

.editorconfig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ root = true
33
[*]
44
charset = utf-8
55
end_of_line = lf
6-
insert_final_newline = true
7-
indent_style = space
86
indent_size = 4
7+
indent_style = space
8+
insert_final_newline = true
99
trim_trailing_whitespace = true
1010

1111
[*.md]

.gitattributes

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,22 @@
1-
* text=auto
2-
31
# Path-based git attributes
42
# https://git-scm.com/docs/gitattributes
3+
* text=auto
54

65
# Ignore all test and documentation with "export-ignore".
7-
/.editorconfig export-ignore
8-
/.gitattributes export-ignore
9-
/.github export-ignore
10-
/.gitignore export-ignore
11-
/phpunit.xml export-ignore
12-
/rector.php export-ignore
13-
/tests export-ignore
6+
/.github export-ignore
7+
/.gitattributes export-ignore
8+
/.gitignore export-ignore
9+
/phpunit.xml.dist export-ignore
10+
/art export-ignore
11+
/docs export-ignore
12+
/tests export-ignore
13+
/.editorconfig export-ignore
14+
/.php_cs.dist.php export-ignore
15+
/psalm.xml export-ignore
16+
/psalm.xml.dist export-ignore
17+
/testbench.yaml export-ignore
18+
/UPGRADING.md export-ignore
19+
/phpstan.neon.dist export-ignore
20+
/phpstan-baseline.neon export-ignore
21+
/docker export-ignore
22+
/docker-compose.yml export-ignore
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Dependabot Auto-Merge
2+
on: pull_request_target
3+
4+
permissions:
5+
pull-requests: write
6+
contents: write
7+
8+
jobs:
9+
dependabot:
10+
runs-on: ubuntu-latest
11+
if: ${{ github.actor == 'dependabot[bot]' }}
12+
steps:
13+
14+
- name: Dependabot metadata
15+
id: metadata
16+
uses: dependabot/fetch-metadata@v2
17+
with:
18+
github-token: "${{ secrets.GITHUB_TOKEN }}"
19+
20+
- name: Auto-merge Dependabot PRs for semver-minor updates
21+
if: ${{ steps.metadata.outputs.update-type == 'version-update:semver-minor' }}
22+
run: gh pr merge --auto --merge "$PR_URL"
23+
env:
24+
PR_URL: ${{ github.event.pull_request.html_url }}
25+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
26+
27+
- name: Auto-merge Dependabot PRs for semver-patch updates
28+
if: ${{ steps.metadata.outputs.update-type == 'version-update:semver-patch' }}
29+
run: gh pr merge --auto --merge "$PR_URL"
30+
env:
31+
PR_URL: ${{ github.event.pull_request.html_url }}
32+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/static.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Static Analysis
2+
3+
on:
4+
push:
5+
paths:
6+
- '**.php'
7+
- 'phpstan.neon.dist'
8+
9+
jobs:
10+
phpstan:
11+
name: PHPStan
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v4
15+
16+
- name: Setup PHP
17+
uses: shivammathur/setup-php@v2
18+
with:
19+
php-version: '8.3'
20+
coverage: none
21+
22+
- name: Install composer dependencies
23+
uses: ramsey/composer-install@v3
24+
25+
- name: Run PHPStan
26+
run: composer test:types
27+
28+
ecs:
29+
name: ECS
30+
31+
runs-on: ubuntu-latest
32+
33+
steps:
34+
- name: Checkout
35+
uses: actions/checkout@v4
36+
37+
- name: Setup PHP
38+
uses: shivammathur/setup-php@v2
39+
with:
40+
php-version: '8.3'
41+
coverage: none
42+
43+
- name: Install Dependencies
44+
run: composer update --prefer-dist --no-interaction --no-progress --ansi
45+
46+
- name: Run ECS
47+
run: composer test:style

.github/workflows/tests.yml

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,27 @@ name: Tests
22

33
on:
44
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
58

69
jobs:
7-
setup:
10+
test:
811
runs-on: ${{ matrix.os }}
912
strategy:
1013
fail-fast: true
1114
matrix:
12-
os: [ ubuntu-latest ]
13-
php: [ 8.2, 8.3 ]
14-
laravel: [ 10.*, 11.* ]
15-
stability: [ prefer-lowest, prefer-stable ]
15+
os: [ubuntu-latest]
16+
php: [8.4, 8.3]
17+
laravel: [12.*, 11.*]
18+
stability: [prefer-lowest, prefer-stable]
1619
include:
17-
- laravel: 10.*
18-
testbench: 8.*
20+
- laravel: 12.*
21+
testbench: 10.*
1922
- laravel: 11.*
2023
testbench: 9.*
2124

22-
name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }}
25+
name: PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }}
2326

2427
steps:
2528
- name: Checkout code
@@ -28,13 +31,17 @@ jobs:
2831
- name: Setup PHP
2932
uses: shivammathur/setup-php@v2
3033
with:
31-
extensions: oauth
32-
coverage: none
3334
php-version: ${{ matrix.php }}
35+
coverage: none
36+
37+
- name: Setup problem matchers
38+
run: |
39+
echo "::add-matcher::${{ runner.tool_cache }}/php.json"
40+
echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
3441
35-
- name: Install Composer dependencies
42+
- name: Install dependencies
3643
run: |
37-
composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update
44+
composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update --ansi
3845
composer update --${{ matrix.stability }} --prefer-dist --no-interaction --ansi
3946
4047
- name: Execute tests

.gitignore

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
1+
/.idea
12
/build
2-
composer.lock
3-
vendor
3+
/vendor
4+
/.php_cs.cache
5+
/composer.lock
6+
/phpunit.xml
7+
/phpstan.neon
8+
.php_cs
9+
.php_cs.cache
410
.phpunit.cache
5-
.idea
11+
.php-cs-fixer.cache
12+
coverage
13+
docs
14+
node_modules
15+
testbench.yaml

composer.json

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@
44
"type": "library",
55
"license": "MIT",
66
"require": {
7-
"php": "^8.2",
8-
"illuminate/support": "^10.0 || ^11.0",
9-
"illuminate/contracts": "^10.0 || ^11.0"
7+
"php": "^8.3",
8+
"illuminate/support": "^11.0 || ^12.0",
9+
"illuminate/contracts": "^11.0 || ^12.0"
1010
},
1111
"require-dev": {
12-
"pestphp/pest": "^2.33",
13-
"worksome/coding-style": "^2.8",
14-
"mockery/mockery": "^1.6"
12+
"mockery/mockery": "^1.6",
13+
"orchestra/testbench": "^9.12 || ^10.1",
14+
"pestphp/pest": "^3.1",
15+
"worksome/coding-style": "^3.2"
1516
},
1617
"autoload": {
1718
"psr-4": {
@@ -26,10 +27,12 @@
2627
"scripts": {
2728
"lint": "vendor/bin/ecs --fix",
2829
"test:unit": "vendor/bin/pest",
30+
"test:types": "vendor/bin/phpstan analyse",
2931
"test:coverage": "vendor/bin/pest --coverage --min=95",
3032
"test:style": "vendor/bin/ecs",
3133
"test": [
3234
"@test:style",
35+
"@test:types",
3336
"@test:unit"
3437
]
3538
},

docker-compose.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
services:
2+
php:
3+
build: ./docker
4+
volumes:
5+
- .:/var/www/html
6+
environment:
7+
- XDEBUG_MODE=${XDEBUG_MODE:-off}
8+
- XDEBUG_CONFIG=${XDEBUG_CONFIG:-client_host=host.docker.internal}
9+
composer:
10+
build: ./docker
11+
entrypoint: ["composer"]
12+
volumes:
13+
- .:/var/www/html

docker/Dockerfile

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
FROM php:8.3-cli-alpine
2+
3+
RUN apk add --no-cache $PHPIZE_DEPS linux-headers
4+
RUN pecl install xdebug
5+
RUN docker-php-ext-enable xdebug
6+
7+
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
8+
9+
WORKDIR /var/www/html
10+
11+
ENTRYPOINT ["php"]

phpstan-baseline.neon

Whitespace-only changes.

0 commit comments

Comments
 (0)