Skip to content

Commit 5f5f3c9

Browse files
authored
Merge pull request #42 from ans-group/34858-laravel-11-support
Laravel 11 Support
2 parents 1005da4 + 8c2b260 commit 5f5f3c9

40 files changed

+959
-280
lines changed

.docker/php82/Dockerfile

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
FROM php:8.2-alpine AS apio
2+
RUN apk add --update git \
3+
linux-headers \
4+
$PHPIZE_DEPS \
5+
openssh \
6+
zip
7+
8+
RUN pecl install xdebug && docker-php-ext-enable xdebug;
9+
10+
RUN docker-php-ext-install pdo_mysql
11+
12+
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
13+
14+
ARG SSH_PRIVATE_KEY
15+
16+
WORKDIR /app
17+
COPY ./ /app/
18+
19+
RUN composer install;
20+
21+
STOPSIGNAL SIGTERM
22+
23+
ENTRYPOINT ["tail", "-f", "/dev/null"]

.docker/php83/Dockerfile

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
FROM php:8.3-alpine AS apio
2+
RUN apk add --update git \
3+
linux-headers \
4+
$PHPIZE_DEPS \
5+
openssh \
6+
zip
7+
8+
RUN pecl install xdebug && docker-php-ext-enable xdebug;
9+
10+
RUN docker-php-ext-install pdo_mysql
11+
12+
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
13+
14+
ARG SSH_PRIVATE_KEY
15+
16+
WORKDIR /app
17+
COPY ./ /app/
18+
19+
RUN composer install;
20+
21+
STOPSIGNAL SIGTERM
22+
23+
ENTRYPOINT ["tail", "-f", "/dev/null"]

.github/actions/setup/action.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Run tests
2+
description: Run tests on different PHP and Laravel versions
3+
4+
inputs:
5+
php_version:
6+
description: 'PHP version'
7+
required: true
8+
laravel_version:
9+
description: 'Laravel version'
10+
required: true
11+
12+
runs:
13+
using: composite
14+
steps:
15+
- name: Setup PHP
16+
uses: shivammathur/setup-php@v2
17+
with:
18+
php-version: ${{ inputs.php_version }}
19+
coverage: none
20+
21+
- name: Remove the composer lock file
22+
run: rm -f composer.lock
23+
shell: bash
24+
25+
- name: Install Laravel & dependencies
26+
run: composer require laravel/framework:^${{ inputs.laravel_version }}.0 -W
27+
shell: bash
28+
29+
- name: Install optional dependencies
30+
run: composer require enlightn/security-checker league/flysystem-ftp
31+
shell: bash

.github/workflows/checks.yml

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
name: Checks
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
schedule:
9+
- cron: '0 0 * * *'
10+
11+
jobs:
12+
php-tests:
13+
runs-on: ubuntu-latest
14+
15+
strategy:
16+
matrix:
17+
environment:
18+
- php_version: 8.2
19+
laravel_version: 11
20+
- php_version: 8.3
21+
laravel_version: 11
22+
23+
name: Test on PHP ${{ matrix.environment.php_version }} & Laravel ${{ matrix.environment.laravel_version }}
24+
25+
steps:
26+
- name: Checkout code
27+
uses: actions/checkout@v4
28+
29+
- name: Setup
30+
uses: ./.github/actions/setup
31+
with:
32+
php_version: ${{ matrix.environment.php_version }}
33+
laravel_version: ${{ matrix.environment.laravel_version }}
34+
35+
- name: Execute tests
36+
run: composer test
37+
38+
php-codesniffer:
39+
runs-on: ubuntu-latest
40+
name: PHP Codesniffer
41+
42+
steps:
43+
- name: Checkout code
44+
uses: actions/checkout@v4
45+
46+
- name: Setup
47+
uses: ./.github/actions/setup
48+
with:
49+
php_version: 8.3
50+
laravel_version: 11
51+
52+
- name: Run codesniffer
53+
run: composer phpcs
54+
55+
php-mess-detector:
56+
runs-on: ubuntu-latest
57+
name: PHP Mess Detector
58+
59+
steps:
60+
- name: Checkout code
61+
uses: actions/checkout@v4
62+
63+
- name: Setup
64+
uses: ./.github/actions/setup
65+
with:
66+
php_version: 8.3
67+
laravel_version: 11
68+
69+
- name: Run mess detector
70+
run: composer phpmd
71+
72+
rector:
73+
runs-on: ubuntu-latest
74+
name: Rector
75+
76+
steps:
77+
- name: Checkout code
78+
uses: actions/checkout@v4
79+
80+
- name: Setup
81+
uses: ./.github/actions/setup
82+
with:
83+
php_version: 8.3
84+
laravel_version: 11
85+
86+
- name: Run Rector
87+
run: composer rector
88+
89+
larastan:
90+
runs-on: ubuntu-latest
91+
name: Larastan
92+
93+
steps:
94+
- name: Checkout code
95+
uses: actions/checkout@v4
96+
97+
- name: Setup
98+
uses: ./.github/actions/setup
99+
with:
100+
php_version: 8.3
101+
laravel_version: 11
102+
103+
- name: Run Larastan
104+
run: composer larastan

.github/workflows/run-tests.yml

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

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
vendor
22
composer.lock
33
.phpunit.result.cache
4+
.phpunit.cache

.phpcs/ruleset.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0"?>
2+
<ruleset name="Scans">
3+
<description>Standards</description>
4+
<exclude-pattern>.docker/*</exclude-pattern>
5+
<exclude-pattern>vendor/*</exclude-pattern>
6+
<rule ref="PSR12"/>
7+
<rule ref="PSR1.Methods.CamelCapsMethodName">
8+
<exclude-pattern>tests/*</exclude-pattern>
9+
</rule>
10+
<rule ref="PSR1.Files.SideEffects.FoundWithSymbols">
11+
<exclude-pattern>tests/Pest.php</exclude-pattern>
12+
</rule>
13+
</ruleset>

.phpmd/ruleset.xml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<ruleset name="FastRules"
3+
xmlns="http://pmd.sf.net/ruleset/1.0.0"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0
6+
http://pmd.sf.net/ruleset_xml_schema.xsd"
7+
xsi:noNamespaceSchemaLocation="
8+
http://pmd.sf.net/ruleset_xml_schema.xsd">
9+
<description>
10+
ANS's rules
11+
</description>
12+
13+
<exclude-pattern>.docker/*</exclude-pattern>
14+
<exclude-pattern>vendor/*</exclude-pattern>
15+
<exclude-pattern>storage/*</exclude-pattern>
16+
<exclude-pattern>bootstrap/cache/*</exclude-pattern>
17+
18+
<rule ref="rulesets/cleancode.xml">
19+
<exclude name="StaticAccess" />
20+
</rule>
21+
22+
<rule ref="rulesets/codesize.xml">
23+
<exclude name="TooManyPublicMethods" />
24+
</rule>
25+
<rule ref="rulesets/codesize.xml/TooManyPublicMethods">
26+
<properties>
27+
<property name="ignorepattern" value="(^(scope|set|get))i" />
28+
</properties>
29+
</rule>
30+
31+
<rule ref="rulesets/controversial.xml">
32+
<exclude name="CamelCaseMethodName" />
33+
</rule>
34+
<rule ref="rulesets/controversial.xml/CamelCaseMethodName">
35+
<properties>
36+
<property name="allow-underscore-test" value="true" />
37+
</properties>
38+
</rule>
39+
40+
<rule ref="rulesets/design.xml">
41+
<exclude name="CouplingBetweenObjects" />
42+
</rule>
43+
<rule ref="rulesets/design.xml/CouplingBetweenObjects">
44+
<properties>
45+
<property name="maximum" value="20" />
46+
</properties>
47+
</rule>
48+
49+
<rule ref="rulesets/naming.xml"/>
50+
51+
<rule ref="rulesets/unusedcode.xml"/>
52+
</ruleset>

composer.json

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,46 @@
2121
},
2222
"minimum-stability": "dev",
2323
"require": {
24-
"php": "^8.0|^8.1",
25-
"illuminate/database": "^6.20.12|^7.30.4|^8.22.2|^9.0|^10.0|^11.0",
26-
"illuminate/http": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0"
24+
"php": "^8.2",
25+
"illuminate/database": "^11.0",
26+
"illuminate/http": "^11.0"
2727
},
2828
"require-dev": {
29-
"orchestra/testbench": "^4.0|^5.0|^6.0|^7.0|^8.0",
30-
"phpunit/phpunit": "^8.5|^9.3"
29+
"phpunit/phpunit": "^10.0",
30+
"squizlabs/php_codesniffer": "^3.10",
31+
"orchestra/testbench": "^9.0",
32+
"phpmd/phpmd": "^2.1.5",
33+
"larastan/larastan": "^2.9",
34+
"phpstan/phpstan-mockery": "^1.1",
35+
"rector/rector": "^1.2"
3136
},
3237
"extra": {
3338
"laravel": {
3439
"providers": [
3540
"UKFast\\Sieve\\SieveServiceProvider"
3641
]
3742
}
43+
},
44+
"scripts": {
45+
"tests": "./vendor/bin/phpunit",
46+
"phpcs": "./vendor/bin/phpcs --colors --standard=.phpcs/ruleset.xml .",
47+
"phpcs:fix": "./vendor/bin/phpcbf --colors --standard=.phpcs/ruleset.xml .",
48+
"phpmd": "./vendor/bin/phpmd src,tests github .phpmd/ruleset.xml --baseline-file=./phpmd.baseline.xml --color",
49+
"larastan": "./vendor/bin/phpstan --configuration=phpstan.neon analyse --error-format=table --memory-limit=1G src tests",
50+
"rector": "./vendor/bin/rector --dry-run --config=rector.php",
51+
"rector:fix": "./vendor/bin/rector --config=rector.php",
52+
"post-autoload-dump": [
53+
"@php ./vendor/bin/testbench package:discover --ansi"
54+
],
55+
"standards:check": [
56+
"@phpcs",
57+
"@phpmd",
58+
"@larastan",
59+
"@rector"
60+
],
61+
"standards:fix": [
62+
"@phpcs:fix",
63+
"@rector:fix"
64+
]
3865
}
3966
}

docker-compose.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
services:
2+
php82:
3+
container_name: sieve-package-php82
4+
build:
5+
context: .
6+
dockerfile: .docker/php82/Dockerfile
7+
args:
8+
- SSH_PRIVATE_KEY
9+
volumes:
10+
- './:/app'
11+
networks:
12+
- sieve-package
13+
extra_hosts:
14+
- "host..xdebug.internal:host-gateway"
15+
php83:
16+
container_name: sieve-package-php83
17+
build:
18+
context: .
19+
dockerfile: .docker/php83/Dockerfile
20+
args:
21+
- SSH_PRIVATE_KEY
22+
volumes:
23+
- './:/app'
24+
networks:
25+
- sieve-package
26+
extra_hosts:
27+
- "host..xdebug.internal:host-gateway"
28+
29+
networks:
30+
sieve-package:
31+
name: ${SIEVE_PACKAGE_NETWORK:-sieve-package}
32+

0 commit comments

Comments
 (0)