Skip to content

Commit 66cff43

Browse files
committed
feat: add support for Laravel 12
1 parent 9b6d446 commit 66cff43

File tree

13 files changed

+204
-72
lines changed

13 files changed

+204
-72
lines changed

.editorconfig

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
indent_size = 4
7+
indent_style = space
8+
insert_final_newline = true
9+
trim_trailing_whitespace = true
10+
11+
[*.md]
12+
trim_trailing_whitespace = false
13+
14+
[*.{yml,yaml}]
15+
indent_size = 2

.gitattributes

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,22 @@
1-
/tests export-ignore
2-
phpunit.xml.dist export-ignore
3-
.gitattributes export-ignore
4-
.gitignore export-ignore
5-
.github export-ignore
6-
phpcs.xml export-ignore
1+
# Path-based git attributes
2+
# https://git-scm.com/docs/gitattributes
3+
* text=auto
4+
5+
# Ignore all test and documentation with "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

.github/workflows/code-analysis.yml

Lines changed: 0 additions & 32 deletions
This file was deleted.
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/main.yml renamed to .github/workflows/tests.yml

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,46 @@ 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 }}
9-
name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }}
1012
strategy:
13+
fail-fast: true
1114
matrix:
12-
os: [ ubuntu-latest ]
13-
php: [ 8.2, 8.3, 8.4 ]
14-
laravel: [ 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:
20+
- laravel: 12.*
21+
testbench: 10.*
1722
- laravel: 11.*
1823
testbench: 9.*
1924

25+
name: PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }}
26+
2027
steps:
2128
- name: Checkout code
2229
uses: actions/checkout@v4
2330

2431
- name: Setup PHP
2532
uses: shivammathur/setup-php@v2
2633
with:
27-
coverage: none
2834
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"
2941
3042
- name: Install dependencies
3143
run: |
32-
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
3345
composer update --${{ matrix.stability }} --prefer-dist --no-interaction --ansi
3446
3547
- name: Execute tests

.gitignore

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

composer.json

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,18 @@
1010
}
1111
],
1212
"require": {
13-
"php": "^8.2",
13+
"php": "^8.3",
1414
"thecodingmachine/safe": "^2.5 || ^3.0",
15-
"illuminate/contracts": "^11.0",
16-
"illuminate/pipeline": "^11.0"
15+
"illuminate/contracts": "^11.0 || ^12.0",
16+
"illuminate/pipeline": "^11.0 || ^12.0"
1717
},
1818
"require-dev": {
19+
"larastan/larastan": "^3.1",
20+
"nunomaduro/collision": "^7.10 || ^8.1.1",
21+
"orchestra/testbench": "^9.12 || ^10.1",
1922
"pestphp/pest": "^3.7",
20-
"worksome/coding-style": "^3.1"
23+
"pestphp/pest-plugin-laravel": "^3.1",
24+
"worksome/coding-style": "^3.2"
2125
},
2226
"autoload": {
2327
"psr-4": {

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"]

0 commit comments

Comments
 (0)